Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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_.net 5_Ef Core 5.0 - Fatal编程技术网

C# EF核心可空引用类型可空基元外键

C# EF核心可空引用类型可空基元外键,c#,entity-framework-core,.net-5,ef-core-5.0,C#,Entity Framework Core,.net 5,Ef Core 5.0,当我在code first数据库模型类中启用可空引用类型时,EF核心迁移似乎没有正确地尊重我的可空类型 我注意到,当我启用可为null的引用类型时,我的外键被设置为不可为null,即使我将它标记为可为null [列(“我的外键”)] 公众长?MyFK{get;set;} 迁移生成类型为bigint的不可空列 问题:当我为该型号设置了#可空时,如何使此列可空 初始迁移脚本 这些是创建表的迁移脚本的不同之处。一个示例是启用了可空引用类型,另一个示例是禁用了可空引用类型 禁用可为空的引用类型 这是在

当我在code first数据库模型类中启用可空引用类型时,EF核心迁移似乎没有正确地尊重我的可空类型

我注意到,当我启用可为null的引用类型时,我的外键被设置为不可为null,即使我将它标记为可为null

[列(“我的外键”)]
公众长?MyFK{get;set;}
迁移生成类型为
bigint
的不可空列

问题:当我为该型号设置了
#可空
时,如何使此列可空

初始迁移脚本 这些是创建表的迁移脚本的不同之处。一个示例是启用了可空引用类型,另一个示例是禁用了可空引用类型

禁用可为空的引用类型 这是在禁用可空引用类型时创建列
MY\u FOREIGN\u KEY
的语句

MY_FOREIGN_KEY=table.Column(类型:“bigint”,可空:true),
当我关闭可为null的引用类型时,我将对此列进行以下迁移:

migrationBuilder.AlterColumn(
名称:“我的外键”,
表格:“mytable”,
键入:“bigint”,
可为空:是的,
oldClrType:typeof(长),
老字型:“bigint”);
启用了可为空的引用类型 这是migrations脚本中的语句,在启用可空引用类型时创建列
MY\u FOREIGN\u KEY

MY_FOREIGN_KEY=table.Column(类型:“bigint”,可空:false),

我已经解决了这个问题,在数据库上下文中将
我的外键
声明为可空。可空值类型不受NRT启用/禁用的影响。但是参考导航属性是,并且它们比FK属性具有更高的优先级。因此,这里很可能没有显示与
MyFK
相关联的
public myanotherity MyFK实体{get;set;}
。启用NRT后,您应该将其更改为NRT
public MyAnotherEntity