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 - Fatal编程技术网

C# 在进行映射时对基元类型使用等参变量的实体框架

C# 在进行映射时对基元类型使用等参变量的实体框架,c#,entity-framework,C#,Entity Framework,我有一个拥有以下财产的实体: public int? VehicleId { get; set; } 我注意到,在为它进行映射时,提供了一个等参方法。我问了另一位同事,如果我没有具体说明IsRequired,并且没有得到满意的答案,那么IsOptional是否是隐含的 他根据原语的类型提到了它,因为它不适用于非原语 是否有人能够进一步说明,并让我知道即使属性可为空,使用等参选项是否被视为最佳做法?如果上述内容适用于所有原语?默认情况下始终需要主键属性,默认情况下也需要外键属性。所有其他属性都是

我有一个拥有以下财产的实体:

public int? VehicleId { get; set; }
我注意到,在为它进行映射时,提供了一个等参方法。我问了另一位同事,如果我没有具体说明IsRequired,并且没有得到满意的答案,那么IsOptional是否是隐含的

他根据原语的类型提到了它,因为它不适用于非原语


是否有人能够进一步说明,并让我知道即使属性可为空,使用等参选项是否被视为最佳做法?如果上述内容适用于所有原语?

默认情况下始终需要主键属性,默认情况下也需要外键属性。所有其他属性都是可选的(可为空)。所有可映射到db的数据类型都应该是基元的,当您谈到非基元时,您指的是
导航属性
,它实际上不是db的一部分(它是模型的一部分)。因此您通常显式地对外键属性使用
等参变量
。通常对其他属性(主键和外键除外)明确使用
IsRequired
导航属性是否等同于Dapper
[Write(false)]
属性?感谢您提供有关主键和外键的规则。如果外键可为空,该怎么办?外键示例:即,存在一个车辆表,该表对车辆历史记录表具有外键。VehicleHistory表还有一个指向Vehicle表的外键。要启用插入-车辆表上的historyId列可为空,以便我们可以插入车辆的记录,在VehicleHistory中创建初始条目,然后返回并使用外键更新车辆表。是的,我意识到这个设计不太理想,但这正是我必须处理的。谢谢你的帮助和详细解释@无望。我觉得有更好的办法。我将查看连接表和导航属性,然后决定如何尝试和管理关系。默认情况下始终需要主键属性,默认情况下也需要外键属性。所有其他属性都是可选的(可为空)。所有可映射到db的数据类型都应该是基元的,当您谈到非基元时,您指的是
导航属性
,它实际上不是db的一部分(它是模型的一部分)。因此您通常显式地对外键属性使用
等参变量
。通常对其他属性(主键和外键除外)明确使用
IsRequired
导航属性是否等同于Dapper
[Write(false)]
属性?感谢您提供有关主键和外键的规则。如果外键可为空,该怎么办?外键示例:即,存在一个车辆表,该表对车辆历史记录表具有外键。VehicleHistory表还有一个指向Vehicle表的外键。要启用插入-车辆表上的historyId列可为空,以便我们可以插入车辆的记录,在VehicleHistory中创建初始条目,然后返回并使用外键更新车辆表。是的,我意识到这个设计不太理想,但这正是我必须处理的。谢谢你的帮助和详细解释@无望。我觉得有更好的办法。我将查看连接表和导航属性,然后决定如何尝试和管理关系。