使用相同的模型实体框架С#访问不同的表[关闭]

Posted

技术标签:

【中文标题】使用相同的模型实体框架С#访问不同的表[关闭]【英文标题】:Accessing different tables using the same model Entity framework С# [closed] 【发布时间】:2021-08-08 03:00:00 【问题描述】:

面临以下问题:我有两张桌子和一个适合它们的模型。我认为为第二个表创建一个单独的相同模型是错误的,尽管这是一种工作方法。您能告诉我如何构建访问第一个表或第二个表的逻辑吗?

【问题讨论】:

拥有单独的实体并不是“错误的”。如果您有两个单独的表,那么您有两个单独的问题。今天它们是相同的。明天他们可能不会。两张桌子而不是一张桌子的理由是什么?为什么要增加尝试将实体绑定交换到不同表的复杂性,这几乎肯定会导致错误和问题? @StevePy我知道你的意思。我有一个用户测试应用程序,一个表存储第一个测试的问题,第二个表存储第二个测试的问题 这个问题对于 Stack Overflow 来说太宽泛,也太基于意见了。 【参考方案1】:

虽然我理解这背后的前提,但我认为在 EF Core 中使用一个模型访问两个表是不可能的(我也不认为这是一个好主意),因为 Table 属性不能重复。

但是,如果您实现继承,则可以克服此限制。

[Table("Table1")]
public class Model1 : MyBaseModel


[Table("Table2")]
public class Model2 : MyBaseModel


public class MyBaseModel

    public int ID  get; set; 

MyBaseModel 的属性将被继承到Model1Model2 类。假设这些模型具有名为 ID 的相同列,您将能够通过这种方式使用两个不同的类(尽管使用一个基本模型)访问这两个表。

【讨论】:

以上是关于使用相同的模型实体框架С#访问不同的表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架 ORM 不创建模型/表 [关闭]

在模型中使用多对多时访问实体框架自动生成的第三个表

Entity Framework 5,多个模型,相同的实体

实体框架:使用多个架构还是两个不同的数据库?

实体框架6过滤您访问的数据

领域驱动设计、.NET 和实体框架