实体框架 4 代码生成 - 一组实体?

发布于 2024-09-24 04:59:20 字数 154 浏览 1 评论 0原文

我正在寻求为实体框架设置架构,将实体分解为多个模型。我想知道是否可以通过代码生成一组实体,以便每个模型使用同一组数据访问类?我意识到上下文的问题,但我想知道每个上下文是否真的需要有自己的一组类,或者我可以创建许多上下文,但只有一组代表后端表的类,使用自跟踪实体生成特征。

谢谢。

I am looking to setup architecture for entity framework that will break apart the entities into multiple models. What I am wondering if it is possible to code-generate one set of entities, so that each model uses the same set of data access classes? I realize the issue with contexts, but I was wondering if each context really needed to have its own set of classes, or I can create many contexts but only have one set of classes that represent the backend tables, using the self-tracking entities generation feature.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有心的人 2024-10-01 04:59:20

您绝对可以跨多个模型共享 POCO 类。

例如,这样的类:

public class Person
{
   public int ID {get;set;}
   public string Firstname {get;set;}
   public string Surname {get;set;}
   public string Lastname {get {return Surname;} set {Surname = value;}}
}

可以在将 Person 定义为 ID,Firstname,Surname 的 EDMX 中工作
并且可以在第二个 EDMX 中工作,该 EDMX 将 Person 定义为 ID,Firstname,Lastname

虽然不确定自我跟踪实体,STE 是“POCO”,但它们也有一些模型如果两个 EDMX 中的 EntityType 定义不同(如我上面的示例),则可能会中断的特定代码。

你必须尝试一下。

希望这对

Alex(前 EF 团队成员)有帮助

You can definitely share POCO classes across multiple models.

For example a class like this:

public class Person
{
   public int ID {get;set;}
   public string Firstname {get;set;}
   public string Surname {get;set;}
   public string Lastname {get {return Surname;} set {Surname = value;}}
}

Would work in an EDMX that defines Person as ID,Firstname,Surname
And would work in a second EDMX that defines Person as ID,Firstname,Lastname

Not sure though about Self-Tracking Entities, STEs are 'POCO' but they also have some model specific code which might break if the definition of the EntityType is different in your two EDMXs (like in my above sample).

You'd have to try it out.

Hope this helps

Alex (Former EF team member)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文