0
我試圖在Customer和MembershipType之間的兩個實體框架代碼優先模型之間創建1:1關係。它們的型號有:創建代碼實體框架中的第一個1:1關係導致兩個外鍵字段
Customer.cs
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Vidly.Models
{
public class Customer
{
public int Id { get; set; }
[Required]
[StringLength(255)]
public string Name { get; set; }
public bool IsSubscribedToNewsletter { get; set; }
public MembershipType MembershipType { get; set; }
[Display(Name = "Membership Type")]
public byte MembershipTypeId { get; set; }
[Display(Name = "Date of Birth")]
public DateTime? Birthdate { get; set; }
}
}
MembershipType.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Vidly.Models
{
public class MembershipType
{
public int Id { get; set; }
public string Name { get; set; }
public short SignupFee { get; set; }
public byte DurationInMonths { get; set; }
public byte DiscountRate { get; set; }
}
}
這是爲什麼發生?當試圖使用Html幫助器創建下拉框時會引起問題,因爲它保存時想將數據放入MembershipTypeId列,但看起來實體實際上使用的是MembershipType_Id列。
爲什麼你有公共byt e MembershipTypeId {get;組; }?使用編碼 - 首先,您只生成與對象MembershipType的關係。 – Fals
我現在就試試吧!我使用字節MembershipTypeId,因爲我的教授告訴我tbh。對不起,我是美國高等學府。 – Kirkland
不要浪費你的時間。不支持具有顯式FK屬性的「一對一」(如您的公共字節MembershipTypeId {get; set;})。 –