c# - The type '' cannot be used as type parameter 'T' in the generic type or method ''. There is no implicit reference conversion from '' to '' -


i generated linq -to -entity model database , modified - i've made interface :

public interface ivalid {     byte valid{ get; set; }  } 

and make generated classes inherit interface.

i've wrote generic class access tables database:

public list<t> getvalidrecords<t>() t: class, ivalid {     try     {         return _context.set<t>().where(x => x.valid == 1).tolist();     }     catch (exception ex)     {          throw new exception(ex.message);     } } 

when call method in unit test

var records = repositary.getvalidrecords<tablename>(); 

i error -

the type 'tablename' cannot used type parameter 't' in generic type or method 'getvalidrecords()'. there no implicit reference conversion 'tablename' 'ivalid'.

how fix it?

edit: table class:

public partial class tablename: ivalid    {     public byte isvalid { get; set; }  } 

edit2: calling method:

public void getvalidrecordsgenerictest() {     var data = new list<tablename>     {         new tablename() {valid = 1},         new tablename() {valid = 1}     }.asqueryable();      var mockset = new mock<dbset<tablename>>();     mockset.as<iqueryable<tablename>>().setup(m => m.provider).returns(data.provider);     mockset.as<iqueryable<tablename>>().setup(m => m.expression).returns(data.expression);     mockset.as<iqueryable<tablename>>().setup(m => m.elementtype).returns(data.elementtype);     mockset.as<iqueryable<tablename>>().setup(m => m.getenumerator()).returns(data.getenumerator());           var mockcontext = new mock<entities>();     mockcontext.setup(x => x.tablenames).returns(mockset.object);      var database = new database(mockcontext.object);     var records = database.getvalidrecords<tablename>(); // here error      assert.areequal(2, records.count, "wrong number of gueltig records."); } 

tablename should work:

class tablename : ivalid {     // implement ivalid } 

also make sure class tablename implements same ivalid interface used in method getvalidrecords, i.e. ivalid correct namespace.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -