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中创建初始条目,然后返回并使用外键更新车辆表。是的,我意识到这个设计不太理想,但这正是我必须处理的。谢谢你的帮助和详细解释@无望。我觉得有更好的办法。我将查看连接表和导航属性,然后决定如何尝试和管理关系。