簡體   English   中英

禁止 DatabaseGenerated 列上的不可為空屬性

[英]Suppress Non-nullable property on DatabaseGenerated column

我有以下抽象 class:

public abstract class Entity<TKey> 
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public TKey Id { get; set; }
}

我想將此 class 用作我所有實體框架實體類的基礎 class。

一切都很好,除了我有一個我想壓制的警告。

我啟用了可為空的引用類型,並收到以下警告:

警告 CS8618
退出構造函數時,不可為空的屬性“Id”必須包含非空值。 考慮將屬性聲明為可為空。

對於我有此警告的其他屬性,我已經能夠按照建議添加構造函數。 但由於這將是數據庫上的自動生成值,我真的不能這樣做。

我有一些使用 Int 作為鍵的類和其他使用字符串的類,因此我無法在通用 TKey 上添加結構約束。

那么我怎樣才能抑制這個警告呢?

要禁止泛型類型的警告,請使用default! 句法:

public abstract class Entity<TKey>
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public TKey Id { get; set; } = default!; // no more CS8618
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM