C# 如何在实体框架中为关联使用分部类的非DB属性
我有两张桌子:C# 如何在实体框架中为关联使用分部类的非DB属性,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我有两张桌子: ------Product----- | ProductID (key)| | DescricptionID | |----------------| ---Description---------- | DescriptionType (key)| | DescriptionID (key)| | LanguageID (key)| | Description | |----------------------| 如果要在*.
------Product-----
| ProductID (key)|
| DescricptionID |
|----------------|
---Description----------
| DescriptionType (key)|
| DescriptionID (key)|
| LanguageID (key)|
| Description |
|----------------------|
如果要在*.edmx文件中创建Products和Description之间的新关联,必须为表Description中的每个主键指定从属属性。所以我为此创建了一个新的分部类。
例如:
public partial class Product
{
public int DescriptionType
{
get { return 1; }
set { this.DescriptionType = 1; }
}
public string LanguageID
{
get { return "EN"; }
set { this.LanguageID = "EN"; }
}
}
现在的问题是:如何才能在my*.edmx文件中看到这些新属性,从而在这两个表之间的新关联中选择这些属性作为从属属性。
我知道数据库设计不正确,但不可能改变这一点。那么我的问题还有其他解决方案吗?您不能以这种方式创建分部类并与之关联 可以在EDMX编辑器中创建关联 您也可以尝试先使用EF代码,然后在部分类上使用DbSet,但我从未尝试过
也许这是一个愚蠢的问题……但是如果你需要这个关系,为什么不把它添加到DB上呢?你不能用这种方式创建和关联一个分部类 可以在EDMX编辑器中创建关联 您也可以尝试先使用EF代码,然后在部分类上使用DbSet,但我从未尝试过
也许这是一个愚蠢的问题……但是如果你需要这个关系,为什么不把它添加到DB上呢?你的属性设置器有无界递归,会被StackOverflowException炸掉。你的属性设置器有无界递归,会被StackOverflowException炸掉。因为,正如我已经提到的,我不允许更改数据库。有几十个其他程序连接到同一数据库抱歉,没有读取最后两行。因此,唯一的解决方案是编辑EDMX以创建关联。EDMX不是数据库,因此您可以创建将由EF解析的关联,以使用联接或其他查询数据库。如果您不能修改EDMX,我认为您没有机会建立一个关联来跟踪更改并为您加载数据。因为,正如我前面提到的,我不允许更改数据库。有几十个其他程序连接到同一数据库抱歉,没有读取最后两行。因此,唯一的解决方案是编辑EDMX以创建关联。EDMX不是数据库,因此您可以创建将由EF解析的关联,以使用联接或其他查询数据库。如果您不能修改EDMX,我认为您没有机会建立一个关联来跟踪更改并为您加载数据。