EntityFramework代码第一个外键错误

时间:2013-09-13 20:48:40

标签: c# entity-framework code-first

有许多像我这样的问题,但我认为我做的一切都是正确的,我不认为这里的错误是代码:

public class Card
    {
        public int Id { get; set; }

        public string AccountNumber { get; set; } // or string ??

        public decimal TotalFunds { get; set; }

        public virtual User User { get; set; }

    }


  public class User
    {
        public int Id { get; set; }

        public string Username { get; set; }

        public string AuthCode { get; set; }

        public string SessionKey { get; set; }

        public string AccessToken { get; set; }

        public virtual Card Card { get; set; }

        //public virtual UserType UserType { get; set; }

        public virtual ICollection<Vehicle> RentedVehicles { get; set; }

        public User()
        {
            this.RentedVehicles = new HashSet<Vehicle>();
        }

        public string Email { get; set; }
    }

我得到了错误Unable to determine the principal end of an association between the types 'VehicleRental.Models.Card' and 'VehicleRental.Models.User'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations. 我已经多次这样做了(连接1:1与虚拟属性,它总是工作),但现在我已经坚持这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要在其中一个外键用户或卡中标记[Required],或者您可以在OnModelCreating上定义关系原则。

See this example:

我希望这能解决你的问题!