Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在实体框架中为关联使用分部类的非DB属性_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

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,我认为您没有机会建立一个关联来跟踪更改并为您加载数据。