簡體   English   中英

在實體框架中使用通用模型?

[英]Using a generic model in Entity Framework?

這是我的數據庫的一部分:

public abstract class LmData
{
    public int Id { get; set; }

    public LmDataType Type { get; set; }
}

[Table("ListLmDatas")]
public class ListLmData<T> : LmData where T : LmData
{
    public virtual List<T> Value { get; set; }
    public ListLmData()
    {
        Type = LmDataType.List;
    }
}

如您所見,我正在嘗試在數據庫中使用通用模型(該模型繼承自LmData)。 我已經添加了它並更新了數據庫(EF似乎沒有抱怨)。

另一個模型具有對通用模型(ListLmData)的引用,引用如下(簡化)所示:

public class WpSite
{
    public virtual ListLmData<StringLmData> Urls { get; set; }
}

但是運行以下代碼:

WpSite wp = new WpSite();
wp.Urls = new ListLmData<StringLmData>();
wp.Urls.Add(new StringLmData());
context.WpSites.Add(wp);
context.SaveChanges();

導致添加了WpSite,但.Urls屬性為NULL。

此外,在檢查數據庫時,我發現似乎沒有名為“ ListLmDatas ”的表,這進一步使我感到困惑。

實體框架6.1.1不支持通用模型嗎?

附帶說明一下,是的,我沒有顯示“ StringLmData”的模型定義,因為據我所知,它與該問題無關。

繼承有效,泛型無效。

暫無
暫無

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

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