Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# NotMapped字段未由调用.NET Core的过程中的值分配_C#_.net_Linq_Asp.net Core - Fatal编程技术网

C# NotMapped字段未由调用.NET Core的过程中的值分配

C# NotMapped字段未由调用.NET Core的过程中的值分配,c#,.net,linq,asp.net-core,C#,.net,Linq,Asp.net Core,在我的上下文中有一个类型为DbQuery的模型,用于在其中执行存储过程 public class DynamicClass { public int ItemId { get; set; } [NotMapped] public string Title { get; set; } [NotMapped] public string TitleArabic { get; set; } public int? SeasonNumber { get;

在我的上下文中有一个类型为
DbQuery
的模型,用于在其中执行存储过程

public class DynamicClass
{
    public int ItemId { get; set; }
    [NotMapped]
    public string Title { get; set; }
    [NotMapped]
    public string TitleArabic { get; set; }
    public int? SeasonNumber { get; set; }
}
查询:

SELECT ItemId, Title, TitleArabic, SeasonNumber 
FROM dynamicclass
List Result=context.DynamicClass.FromSql(“从DynamicClass中选择ItemId、Title、TitleArabic、季节号”).ToList();
查询工作正常,但执行查询时,
NotMapped
字段未获取值

我的查询可能包含也可能不包含
Title
TitleArabic
,这就是我为这些字段指定
NotMapped
注释的原因

如果我删除了所有的
NotMapped
注释,并且查询结果不包含我在模型中指定的所有列,那么我会得到一个错误

“FromSql”操作的结果中不存在所需的列“Title”

我如何解决这个问题,或者有更好的办法吗?

数据库对所表示属性的排除映射。 这意味着,如果您从数据库中读取某些内容,并且仅在手动分配某些内容后,属性
Title
TitleArabic
才会获取值。 如果从表中读取数据的表包含
Title
TitleArabic
列,则从表中读取数据时,只需删除NotMapped属性即可填充这些值。 否则,您可以指定这些属性应手动返回的内容。例如:

public class DynamicClass
{
    public int ItemId { get; set; }
    [NotMapped]
    public string Title { get; set; }
    [NotMapped]
    public string TitleArabic => GetArabicTitle(Title);
    public int? SeasonNumber { get; set; }
}

如果执行的查询不会返回
Title
ArabicTitle
,则结果对象上的属性在没有NotMapped属性的情况下将为null。

这就是NotMapped属性的思想,它在数据库映射中忽略这些列

表示应从数据库映射中排除属性或类


如果删除NotMapped属性,将始终获得这些列的值。如果它们在数据库中为null,则映射值也将为null。

表本身实际上不存在,因此列也不存在。如果删除了not mapped,则一切正常,但每次查询中可能不会返回all列如果我删除了所有NotMapped属性,并且查询结果不包含我在模型中给定的所有列,则会导致错误“column name无效”“如果我删除了所有NotMapped属性,并且查询结果不包含我在模型中给出的所有冒号,那么它将导致错误“无效冒号名称”“您不能”既有蛋糕又有蛋糕。”,要么所有列都已映射并始终在结果集中,要么未映射。如果有多个返回不同结果的原始查询,则需要不同的结果类型。问题是iam动态生成此sql字符串。。因此,我的模型中的所有字段并非每次在查询中都返回。错误目标是:“'FromSql'操作的结果中不存在所需的列'Title'。在这种情况下,这取决于sql查询的动态程度。如果只有这两种情况,即查询中是否有这两列,则可以将模型类分为两个类,其中一个类有这两列[而没有为其指定NotMapped属性]还有一个没有这些列的类。也许你可以先检查数据库中的列。我希望能帮助你。
public class DynamicClass
{
    public int ItemId { get; set; }
    [NotMapped]
    public string Title { get; set; }
    [NotMapped]
    public string TitleArabic => GetArabicTitle(Title);
    public int? SeasonNumber { get; set; }
}