Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.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# 从EF核心上下文获取类型_C#_Entity Framework Core - Fatal编程技术网

C# 从EF核心上下文获取类型

C# 从EF核心上下文获取类型,c#,entity-framework-core,C#,Entity Framework Core,我试图从给定字符串中获取实体的类型。我的最终目标是为用户创建一个界面(UI界面),让他们有一个GUI来浏览我的数据库。它们基本上有一个表及其字段的树,当它们选择字段时,我想在后端建立SQL查询并返回数据。我被困在如何得到类型 我正在尝试将这些线程之间的解决方案装订在一起: 以下是我当前的尝试: 本质上,我永远不会知道它们在“外观”之后,所以我不能只提供确切的类型,我需要从上下文中获取它(通过字符串) 有没有办法通过字符串获取实际类型? 我知道我可以做这样的事情,但它似乎是多余的(大约有2

我试图从给定字符串中获取实体的
类型。我的最终目标是为用户创建一个界面(UI界面),让他们有一个GUI来浏览我的数据库。它们基本上有一个表及其字段的树,当它们选择字段时,我想在后端建立SQL查询并返回数据。我被困在如何得到类型

我正在尝试将这些线程之间的解决方案装订在一起:

以下是我当前的尝试:

本质上,我永远不会知道它们在“外观”之后,所以我不能只提供确切的类型,我需要从上下文中获取它(通过字符串)

有没有办法通过字符串获取实际类型?

我知道我可以做这样的事情,但它似乎是多余的(大约有20张桌子,还会更多)


基本上,您需要知道实体类名称空间,因为名称本身不足以唯一标识实体类型

一旦您知道了这一点,您就可以使用
FindEntityType
方法获取该实体的EF核心元数据,就像您第一次尝试时一样:

var entityType = _dbContext.Model.FindEntityType("Chadwick.Database.Entities." + className);
该方法的结果是
null
如果不存在这样的实体,则为
IEntityType
实例。它可用于获取与实体相关的其他EF核心元数据,如属性、导航、表名等,您需要的关联类的类型由
ClrType
属性提供:

var classType = entityType.ClrType;

基本上,您需要知道实体类名称空间,因为名称本身不足以唯一标识实体类型

一旦您知道了这一点,您就可以使用
FindEntityType
方法获取该实体的EF核心元数据,就像您第一次尝试时一样:

var entityType = _dbContext.Model.FindEntityType("Chadwick.Database.Entities." + className);
该方法的结果是
null
如果不存在这样的实体,则为
IEntityType
实例。它可用于获取与实体相关的其他EF核心元数据,如属性、导航、表名等,您需要的关联类的类型由
ClrType
属性提供:

var classType = entityType.ClrType;

string name
是什么意思-表名还是实体名?
string name
是实体名
string name
是什么意思-表名还是实体名?
string name
是实体名