0
我使用內置的帳戶控制器/模型/視圖創建了標準MVC 4應用程序。我現在試圖添加另一個控制器,但我想創建一個與現有用戶的外鍵關係,但即時獲取錯誤消息:MVC 4實體框架 - 用戶配置文件的外鍵
'MVC4App.Models.ListingModel'屬性'CreatedBy'上的ForeignKeyAttribute'無效。在依賴類型'MVC4App.Models.ListingModel'上未找到外鍵名'UserId'。名稱值應該是逗號分隔的外鍵屬性名稱列表。
上市模式代碼是:
using System; using System.ComponentModel.DataAnnotations.Schema;
namespace MVC4App.Models
{
public class ListingModel
{
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Location { get; set; }
public string Instrument { get; set; }
public string Genres { get; set; }
public string Description { get; set; }
[ForeignKey("UserId")]
public virtual UserProfile CreatedBy { get; set; }
public DateTime CreatedOn { get; set; }
}
}
我在這裏錯過了什麼?或者有更好的方法我應該這樣做?
另外我假設我可以在用戶個人資料中添加額外的屬性,例如電子郵件地址或稍後在項目中指向頭像圖片的鏈接?
不知道如何工作了問問題,但據'代碼First'而言,這是不可能的。因爲只有'每個表只有一個標識列' – Komengem
我意識到這有點舊,但要回答@ komenge-mwandila,每個表只有一個標識列。 Id是標識列,而UserId只是一個int。當然,它是一個外鍵,它鏈接到一個列可能是一個標識列,但它只是一個int。 這真的不是實體框架相關,因爲你會看到這是一個時間,你希望有兩個表與身份列之間的外鍵,但希望這有助於澄清問題。 –