c# - Making Entity framework implement an interface -


i want use ioc entity framework , ninject. figure need generated entity classes implement interface, icrud. there's walkthrough shows how force entity framework implement interface. followed directions , entityobjectcodegenerator.cs file indeed shows "icrud", doesn't implement interface. don't see subclasses under entityobjectcodegenerator.tt article says i'm supposed to. error

'bugnetmvc.models.bugnetentities' not implement interface member 'bugnetmvc.services.icrud.update()'

update
goal create testable, extensible mvc-3 intranet utilizing entity framework supports typed views , partial views. small level of experience ninject far, believe need overload controller's constructor service view (assume crud methods available each interface) , 1 each partial view:

e.g.

public homecontroller(homeservice homecrudservice, partialviewservice1 partialviewservice) 

update2
clear , others, code can implemented follows:

this how 1 can extend entity

namespace bugnetmvc.models//ensure namespace matches entity {     public partial class milestone : icrud<milestone>//entity, note crud generic.  gives lot of flexibility working ninject     {         public bool create()         {             throw new system.notimplementedexception();         }          public list<milestone> read()         {             var milestones = new list<milestone>();              var result = in new bugnetentities1().milestones                             a.milestoneid >= 0                             select new { a.milestone1 };              milestones = result.asenumerable()                                         .select(o => new models.milestone                                         {                                             milestone1 = o.milestone1                                         }).tolist();             return milestones;         }          public bool update()         {             throw new system.notimplementedexception();         }          public bool delete()         {             throw new system.notimplementedexception();         }     } 

a sample mock entity:

namespace bugnetmvc.services {     public class milestoneservicemock : icrud<milestonemock>     {         public milestoneservicemock()         {          }          public bool create()         {             throw new system.notimplementedexception();         }          public bool update()         {             throw new system.notimplementedexception();         }          public bool delete()         {             throw new system.notimplementedexception();         }           list<milestonemock> icrud<milestonemock>.read()         {             //string[] milestones = new string[14];             list<milestonemock> milestonemocks = new list<milestonemock>();             milestonemocks.add(new milestonemock("new"));             milestonemocks.add(new milestonemock("assessment"));             milestonemocks.add(new milestonemock("pending approval"));             milestonemocks.add(new milestonemock("pending start"));             milestonemocks.add(new milestonemock("planning"));             milestonemocks.add(new milestonemock("dev-in process"));             milestonemocks.add(new milestonemock("dev-pending approval qa"));             milestonemocks.add(new milestonemock("dev-pending move qa"));             milestonemocks.add(new milestonemock("qa-in process"));             milestonemocks.add(new milestonemock("qa-uat"));             milestonemocks.add(new milestonemock("qa-pending approval prod"));             milestonemocks.add(new milestonemock("qa-pending move prod"));             milestonemocks.add(new milestonemock("on-going"));             return milestonemocks;         }     } } //global.asax         internal class sitemodule : ninjectmodule         {             public override void load()             {                 bool mockdb = true;                 mockdb = false;                 if (mockdb)                 {                     //set ninject bindings here.                     bind<icrud<milestonemock>>().to<milestoneservicemock>();                     bind<icrud<application>>().to<applicationservice>();                 }                 else                 {                     //set ninject bindings here.                     bind<icrud<milestone>>().to<milestone>();                     bind<icrud<application>>().to<applicationservice>();                 }             }         } 

the need read(int id), may arise, in case new interface using same basic ideas above should trick. 1 update icrud pass model type methods well. there's plenty of options. worked me, jon skeet expert guidance.

presumably generated entity classes partial classes, correct?

if so, can add own partial class files specify interfaces implemented - , provide actual implementation methods need. suspect lot simpler changing gets generated.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -