从具有多个外键引用的数据模型中查找正确的实体

时间:2015-10-05 07:27:47

标签: c# entity-framework

在Entity框架生成的表中访问正确的数据模型实体时需要帮助。

我有一个包含表Message和MessageStatistics的数据模型。统计表有3个外键到Message表,有3个相应的消息组成统计行。通常它们是请求,确认和响应消息。

在我的C#代码中,我需要使用我们可以访问的id值来访问Message对象(如RequestStatistics.RequestMessageId)。但是,数据模型显示名为Message,Message1和Message2的Message对象。从这些我可以通过名称告诉使用哪个对象,我不想编写测试每个消息的ID的函数。

我不能信任消息对象的顺序,所以有没有一种正确的方法来确定哪个消息是哪个?

1 个答案:

答案 0 :(得分:0)

数据模型可能存在问题。您有3种类型的消息:请求,确认和响应。最好引入基类Message类并从中继承其他消息的类。然后,您的MessageStatistics类可以具有该基本消息类型的属性。

您可以在ASP.NET网站上阅读有关实体框架中的继承(也有迁移说明)或阅读有关不同继承实施的内容 - Mapping the Table-Per-Type (TPT) Inheritance Mapping the Table-Per-Concrete Class (TPC) Inheritance