我边走边学,所以我不熟悉 EF 和 MVC3 背后的所有概念。我有一个应用程序,其中我的 EF 模型 === MVC3 模型,但我也有一些聚合视图模型。我Person dude = Person.Get(id);
在 Controllers 中调用类似的东西,其中 Person 是从数据库生成的 EF 模型,我使用自定义方法对其进行扩展,例如dude.GetSiblings();
我现在想要做的(如果你不告诉我这是一个坏主意)是将 EF 代码移动到另一个程序集中,使用新的更简单的非实体模型创建另一个程序集,我可以将其提供给我的视图和以某种方式(如果可能)序列化并作为 JSON 移动。
问题是我不知道怎么做。如果我将我的 EF 模型移动到不同的项目(如单独的 DAL),我将如何创建映射到 Ef 模型的第二个模型?如果我int id {get;set;} string name {get;set}
在 EF 模型和 MVC3 模型上都有类似的代码,那不会导致很多重复吗?在我的 ViewModels 中,我只是直接使用实体class ViewModelX { Person person; List<Post> posts; int something; }
,但这只是一组打包的实体而不是模型,不是吗?
像 GetSiblings 这样的方法呢?var list = dude.GetSiblings()
在控制器和public List<Person> GetSiblings() { return this.EFPerson.GetSiblings(); }
MVC3 模型中?我对去哪里感到非常困惑。在谷歌搜索时,我真的只找到了高级和非常初学者的教程 - 或者我只是不知道要寻找什么,所以我恳请您的帮助!