gpt4 book ai didi

entity-framework - Entity Framework EntityType 'UserAccount' 没有定义键

转载 作者:行者123 更新时间:2023-12-04 08:30:03 25 4
gpt4 key购买 nike

我收到以下错误:

One or more validation errors were detected during model generation:   
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'UserAccount' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'UserAccounts' is based on type 'UserAccount' that has no keys defined.

此错误由代码触发:
_Db.Database.Initialize(true);

我认为由于某种原因它没有选择模型上的 [Key] 属性。 最初,当我尝试运行代码时,我没有添加 key 属性,这是否意味着已经创建/缓存了阻止应用此键的内容?

除了包含 Entity Framework 5 之外,MVC4 项目几乎是一个空白设置

型号代码
public class AccountContext: DbContext
{
public AccountContext()
: base("DefaultConnection")
{
}

public DbSet<UserAccount> UserAccounts { get; set; }
}

[Table("UserAccount")]
public class UserAccount
{
[Key]
[Required]
public string Username;

[Required]
[DataType(DataType.Password)]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
public string Password;

public string Name;
public string Surname;

[Required]
public string Email;
}

Global.asax 初始化
Database.SetInitializer(new DropCreateDatabaseAlways<AccountContext>());
var _Db = new AccountContext();
_Db.Database.Initialize(true);

我已经做了一些搜索并了解命名约定,例如Id/UserId 等 但是我想明确使用 [Key] 并调用字段用户名。

最佳答案

我相信 EF 只允许映射到属性,而不是您使用的字段。

尝试改变:

[Key]
[Required]
public string Username;


[Key]
[Required]
public string Username { get; set; }

关于entity-framework - Entity Framework EntityType 'UserAccount' 没有定义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16450630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com