我有一个在EntityFramework模型中使用的实体。
public class Entity
{
public int Id { get; set; }
public string Value { get; set; }
}
启用可为空的引用类型后,编译器会警告我:
Warning CS8618 Non-nullable property 'Value' is uninitialized.
我知道此属性在数据库中是不可为空的,并且它是安全的。
除了使用#pragma warning disable
在类中禁用警告以外,是否有其他方法可以将该属性标记为安全?
我的第一个直觉是试图用!
将该类型标记为安全
public string! Value { get; set; }
但这没用。
答案 0 :(得分:1)
请参阅我类似问题的answer。如果您通过某些业务规则确保不可为空(在我的情况下为验证),则最好通过使用non-nullable属性告知类的使用者某些属性永远不会为空,并使用此构造来处理编译器警告
public class Entity
{
public int Id { get; set; } = null!;
public string Value { get; set; } = null!;
}
答案 1 :(得分:0)
您以正确的方式。
公共字符串?值{get;组; }