0

私はエンティティを持っています:

public class User
    {
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string Email { get; set; }
        ...
        public virtual Profile Profile { get; set; }
        ...
public class Profile
    {
        public int UserId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

ユーザーを取得しようとすると、エラーが発生します。

System.Data.Edm.EdmEntityType: : EntityType 'Profile' has no key defined. Define the key for this EntityType.

エンティティを次のように変更すると:

public class User
    {
        [Key]
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string Email { get; set; }
        ...
        public virtual Profile Profile { get; set; }
        ...
public class Profile
    {
        [Key]
        public int UserId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

エラーが発生します:

{"Invalid column name 'Profile_UserId'."}

私は何を間違っていますか?
ここに画像の説明を入力

4

1 に答える 1

1

http://blog.bennymichielsen.be/2011/06/02/entity-framework-4-1-one-to-one-mapping/によると、次のように動作します。

public class User
{
        [Key]
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string Email { get; set; }
        public virtual Profile Profile { get; set; }
}

public class Profile
{
        [Key]
        public int UserId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        [Required]
        public virtual User User { get; set;}
}
于 2013-02-22T21:12:14.720 に答える