EF7 Code First - 生成遷移時,實體類型“對象”上不存在屬性

asp.net-core-mvc c# entity-framework-core

問題

嘗試通過從命令行執行來創建我的EF7 Code First數據庫的初始遷移時:

dnx ef migrations add Initial

我收到錯誤:

System.InvalidOperationException:屬性'ExerciseTemplateId'不能存在於實體類型'object'上,因為該屬性未標記為陰影狀態,並且基礎類型上不存在相應的CLR屬性。 完整的Stacktrace

有任何想法嗎?

導致錯誤的模型

出於某種原因,EF7似乎不喜歡我的Model上的主鍵屬性ExerciseTemplateId

public class ExerciseTemplate
{
    public int ExerciseTemplateId { get; set; }
    public string InitalCode { get; set; }
    public string ClassName { get; set; }
    public string MainMethodName { get; set; }

    public int ExerciseForeignKey { get; set; }
    public Exercise Exercise { get; set; }
}

更多詳情

ExerciseTemplate模型唯一有趣的部分是與Exercise模型的一對一關係:

public class Exercise
{
    public int ExerciseId { get; set; }
    public string Name { get; set; }
    public string Guidance { get; set; }
    public ExerciseTemplate Template { get; set; }
    public List<ExerciseCategory> Categories { get; set; }
    public List<Test> Tests { get; set; }
}

這個問題已經很久了,所以我的DBContext就在這個DBContext Gist中

更新

可以在此模型和上下文要點中找到所有模型和數據庫上下文

一般承認的答案

長話短說:不要在模型類中使用objectType作為屬性類型。它在數據庫中沒有任何表示。

如果您絕對需要存儲任意對象,則可以使用某些序列化程序並將序列化對像作為BLOB存儲在數據庫中。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow