【发布时间】:2014-05-25 13:11:31
【问题描述】:
我正在使用实体框架创建一个 Web api 程序。因此,作为基础,我有一个通过实体框架连接到我的 web api 程序的 sql server 数据库。使用实体框架的附加组件,我根据我的数据库表生成了类。但是我不想将这些类用于我的 web 服务,因为我不需要显示实体框架生成的一些属性,并且对于所有代理问题都有点棘手。这些属性是由于外键而特别生成的。如下,对于这个生成的类,我不需要显示“Societe”对象和“Utilisateur”对象:
public partial class FonctionnalitePerUser
{
public int FonctionUserLngId { get; set; }
public int FonctionUserLngUserId { get; set; }
public int FonctionUserLngSocieteId { get; set; }
public virtual Societe Societe { get; set; }
public virtual Utilisateur Utilisateur { get; set; }
}
我需要一些建议来避免在我的网络服务中显示这些实体。 我在考虑 3 种可能性:
- 由于它是一个分部类,我可能会创建另一个同名的分部类,在其中放置我需要的属性并覆盖构造函数。
- 我可能会从该类继承一个自定义类来覆盖构造函数,以便根据需要获得一个结构化的类。
- 我可能会创建管理类,其功能可以创建我的 Web 服务所需的完美对象。我的意思是将“FonctionnalitePerUser”对象转换为“FonctionnalitePerUserCustom”对象的函数。
这是我找到的 3 个解决方案。为了获得最佳性能,我想知道是否有人可以给我一些建议或提出其他解决方案。 提前致谢
【问题讨论】:
-
我的第一直觉说;不要将 BE 视为 DTO,反之亦然。 (即使用选项 3)
标签: c# web-services entity-framework asp.net-web-api