Entity framework 实体框架——看似简单的问题

Entity framework 实体框架——看似简单的问题,entity-framework,entity-framework-4,poco,Entity Framework,Entity Framework 4,Poco,长时间侦听器,第一次调用 因此,我正在将现有的应用程序转换为ef。到目前为止,我很享受这种经历。我有一个POCO类,它有一些简单的用户属性 前 如何使用EF实现这一点?可以在EDM中完成,还是必须创建分部类?我更喜欢EDM…您需要分部类,因为这是在代码中计算的属性,而不是在数据库中。这里的问题是读/写实体必须只有映射到表的属性,但您的表可能没有FullNamecolumn=您不能映射它,也不能在查询中使用它。EDM中的计算属性是可能的,但前提是您具有由(ESQL中定义的视图)或(自定义SQL选择

长时间侦听器,第一次调用

因此,我正在将现有的应用程序转换为ef。到目前为止,我很享受这种经历。我有一个POCO类,它有一些简单的用户属性


如何使用EF实现这一点?可以在EDM中完成,还是必须创建分部类?我更喜欢EDM…

您需要分部类,因为这是在代码中计算的属性,而不是在数据库中。这里的问题是读/写实体必须只有映射到表的属性,但您的表可能没有
FullName
column=您不能映射它,也不能在查询中使用它。EDM中的计算属性是可能的,但前提是您具有由(ESQL中定义的视图)或(自定义SQL选择)定义的只读实体。如果要在查询中使用
全名
,则必须将其定义为。模型定义的功能是高级EF功能,在designer中不可用。必须以XML形式打开EDMX并手动编辑
这种方法对大多数POCO人员都很有吸引力,这让我重新审视了EF。Scot Gu在这篇文章中介绍了它,他已经写了一系列文章,这些文章提供了很多关于如何使用CodeFirst配置持久性的详细信息。

这会打破EF1中的设计视图吗?*我上周在什么地方读到的,我不这么认为。我在EFv4中使用了所有这些功能,它们都很有效。问题在于
定义查询
——一旦使用它,就不能使用数据库更新。“从数据库更新”会覆盖它。使用存储过程来提取表和“额外”列怎么样?那样的话,它会出现,我知道足够多,不去尝试和更新它。然后我可以在EDM中将该属性设置为只读吗?我试着坚持亲吻。编辑我发现了这篇博文,这篇博文解释了我的问题/解决方案:我使用了一个偏类。它只适用于eval表达式。很好用!如果这是Poco,那么您只需要将[NotMapped]属性添加到FullName属性。
public string FirstName { get; set; }
public string LastName { get; set; }
other properties...
public string FullName
{
    get { return FirstName + " " + LastName; }
}