Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 实体框架代码第一表层次结构_C#_Entity Framework_Code First - Fatal编程技术网

C# 实体框架代码第一表层次结构

C# 实体框架代码第一表层次结构,c#,entity-framework,code-first,C#,Entity Framework,Code First,在我们的数据库中,我们有称为查找的表(一般来说,没有称为查找的表)- 1.马里塔尔斯塔斯(LookUpId,描述)。 2.关系类型(LookUpid,description) 3.标题(LookUpid,描述) 为此类表定义模型的最佳方法是什么。我在想,如果我创建一个泛型类,比如 public class LookUp<T> { //where T is one of lookup kind } public class MaritalStatus : LookUp { // n

在我们的数据库中,我们有称为查找的表(一般来说,没有称为查找的表)- 1.马里塔尔斯塔斯(LookUpId,描述)。 2.关系类型(LookUpid,description) 3.标题(LookUpid,描述)

为此类表定义模型的最佳方法是什么。我在想,如果我创建一个泛型类,比如

public class LookUp<T>
{
//where T is one of lookup kind
}

public class MaritalStatus : LookUp
{
 // no field
}
公共类查找
{
//其中T是一种查找类型
}
公共类状态:查找
{
//无场
}
//标题和关系类型相同

但我不知道如何把这一切放在一起 1.我是否必须将所有类型与表等匹配以进行配置? 2.常规查找在数据库中没有表? 欢迎任何好的教程或建议。 谢谢
Daljit

我想你是在混合一些概念。我相信您打算在以下方案中仅使用一个类访问查找表:

var maritalStatus = new Lookup<MaritalStatus>();
var typeOfRelations = new Lookup<TypeOfRelations>();
var maritalStatus=newlookup();
var typeOfRelations=newlookup();
然后让EF使用generic
Lookup
类了解如何处理数据的读写操作。对于EF,这种方法是不可能的,因为不可能有泛型类型的
DbSet
,因为EF事先不知道从哪个表读写(T可以是任何东西)

一种解决方法是在EF上使用每类型表继承。如果可以更改数据库架构,则可以创建父查找表,并使其他查找都从父查找表向下,然后可以使用EF的“每种类型的表”功能,并在查询期间调用
.OfType
扩展方法

查看Morteza Manavi的文章,了解关于如何做到这一点的非常好的解释:

如果无法更改数据库模式,则可以使用“每具体类表”方法,该方法不需要父类的具体表,也可以在Morteza Manavi的文章中介绍:


祝你好运。

我猜你在混淆一些概念。我相信您打算在以下方案中仅使用一个类访问查找表:

var maritalStatus = new Lookup<MaritalStatus>();
var typeOfRelations = new Lookup<TypeOfRelations>();
var maritalStatus=newlookup();
var typeOfRelations=newlookup();
然后让EF使用generic
Lookup
类了解如何处理数据的读写操作。对于EF,这种方法是不可能的,因为不可能有泛型类型的
DbSet
,因为EF事先不知道从哪个表读写(T可以是任何东西)

一种解决方法是在EF上使用每类型表继承。如果可以更改数据库架构,则可以创建父查找表,并使其他查找都从父查找表向下,然后可以使用EF的“每种类型的表”功能,并在查询期间调用
.OfType
扩展方法

查看Morteza Manavi的文章,了解关于如何做到这一点的非常好的解释:

如果无法更改数据库模式,则可以使用“每具体类表”方法,该方法不需要父类的具体表,也可以在Morteza Manavi的文章中介绍:


祝你好运。

谢谢,这是一个非常好的答案,教程内容非常丰富。谢谢。有时候最好知道什么是不能做的。谢谢,这是一个非常好的答案,教程内容非常丰富。谢谢。有时候最好知道什么是做不到的。