Как использовать CodeFirst (EntityFramework, Microsoft) для создания обнуляемого сложного столбца - PullRequest
1 голос
/ 25 ноября 2011

У меня есть определение, подобное приведенному ниже, и, по сути, я хочу создать его в классе EmailAccount:

public EmailUser?EmailUserAccountInfo {get; set;}

компилятор выдает мне ошибку о ненулевых типах.Моя цель - я хочу сделать EmailUser необязательным.Я немного сбит с толку, потому что я могу установить EmailUserAccountInfo = null напрямую.

var r = new EmailAccount()
                        {
                            EmailUserAccountInfo = null,
                            Id = 1001
                        };



public class EmailAccount
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public EmailUser EmailUserAccountInfo { get; set; }
}


public class EmailUser
{ 
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public EmailAccount EmailAcount { get; set; }

    public string EmailAddress { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string ZipCode { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public int Temperature { get; set; }
    public string WeatherString { get; set; }

    public ImageDetail ImageOfUser { get; set; }
}

1 Ответ

1 голос
/ 25 ноября 2011

Вы можете сделать это, если добавите внешний ключ и отметите его как обнуляемый:

public class EmailAccount
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    // Foreign key    
    public int? EmailUserAccountInfoId { get; set; }

    // Navigation property
    public virtual EmailUser EmailUserAccountInfo { get; set; }
}

См. Этот документ об соглашениях по присвоению имен для Code-First.(Прокрутите вниз до Соглашение об отношениях )

...