我在这里看到了很多此类问题,但它们要么没有答案,要么与我要问的问题或我需要的细节不完全相同。
我在下面包含了我的项目的屏幕截图,以获取有关事物的高级参考视图。
- 在我的“示例”解决方案中,我目前有一个名为的项目
Sample.Data.Model
,其中包含我的数据库优先模型的 edmx 文件。 - 按照此 MSDN 演练中的步骤,然后我将自动生成的 POCO 类移动到一个单独的项目中,并将其命名为
Sample.Data.Entities
. Sample.Data.Entities
然后我在我的项目中引用了该Sample.Data.Model
项目并修复了所有使用,以便我的项目成功构建。- 我当然需要添加到 POCO 类中,所以我在项目中为我的部分类添加了一个
PartialClasses
文件夹。Sample.Data.Entities
然后这就是我迷路的地方。在较小的(非 n 层项目)中,我的 edmx 文件和部分类位于同一个项目中,因此我可以在我的部分类文件中添加与类对象相关的方法,如下所示:
namespace Sample.Data.Entities
{
public partial class User
{
public string FullName
{
get
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
}
}
public User GetUser(int userID)
{
using (var dc = new ProntoEntities())
{
return (from u in dc.Users where u.ID == userID select u).SingleOrDefault();
}
}
}
然后在 MVC 项目中我可以做这样的事情......
User user = new User();
user = user.GetUser(1);
或者
User user = new User();
user.FirstName = "John";
user.LastName = "Smith";
user.Update();
但是,在当前的设置中我不能这样做,因为部分类对实体一无所知。
所以,我的问题是,在我当前的设置中,我在哪里放置数据的“查询”?
另外,如果我要为我的 MVC 项目制作“ViewModels”,它们应该放在哪里?我通常会将它们与我的部分类和 edmx 文件放在同一个项目中。