網路城邦
上一篇 回創作列表 下一篇   字體:
[解決]使用ICollection中出現 No field was found backing property of entity type.
2018/10/25 18:38:08瀏覽1894|回應0|推薦0

前言 : 

有時候Domain物件裡面有List物件時,習慣寫成這樣

public class ShopopingCart : BaseEntity

{

    private ICollection<Product> _products; 

    public virtual ICollection<Product> Products

    {

        get => _products ?? (_products = new List<Product>());

        set => _products = value;

    }

}

之後在存取物件時,就不用擔心這個物件會不會是null的狀態

.

然後寫著寫著很衰洨的不知道未啥遇到這個錯誤

System.InvalidOperationException: No field was found backing property Product of entity type ShopopingCart. Lazy-loaded navigation properties must have backing fields. Either name the backing field so that it is picked up by convention or configure the backing field to use.

.


正文 : 

後來找了一下,發現了一篇很有趣的回復

https://github.com/aspnet/EntityFrameworkCore/issues/12885#issuecomment-410712486

.

簡單來說,public virtual ICollection<T> 的命名要和private ICollection<T>的一樣

.

像上面這個寫法

public 的變數有加s

但private的忘了加

就會產生錯誤

.


心得 : 

雞掰

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=andy840119&aid=118612814