我有2个项目。移动应用程序和标准网站。
我想使用Entity Framework - Code First在两个项目之间共享我的模型。
我如何实现这一目标?
我看了这个Q: MVC and separate projects, 这是否意味着我只应将我的DTO放在单独的组件中?
将视图模型和DTO放在单独的项目中是否可能和/或明智?
如果是这样,我还可以将我的模型查询放在这个单独的程序集中吗?
一个帮助投射我想法的例子:
ExtAssembly.Product product = new ExtAssembly.Product();
product.Name = "Dave";
ExtAssembly.ProductQueries.Create(product);
var products = ExtAssembly.ProductQueries.Search("Dave");
答案 0 :(得分:1)
将视图模型和DTO放在单独的项目中是否可能和/或明智?
是的,但是,它可能不是正确的分离。视图模型通常绑定到视图,因此它们通常比模型更接近视图。我不确定你的DTO在这里扮演什么样的角色,但你想问问自己有什么问题(M,V或C)拥有它们然后将它们分组。
如果是这样,我还可以将我的模型查询放在这个单独的程序集中吗?
根据您的示例,将模型和模型查询放在单独的程序集中似乎是明智的。我已经看到模型多次分成新项目。始终将模型打包在与控制器相同的程序集中或查看完全没有问题的原因。
即,您通常希望将模型(存在核心业务逻辑)用于多个UI。