C# 使用实体框架映射到现有表

C# 使用实体框架映射到现有表,c#,entity-framework,C#,Entity Framework,在尝试使用实体框架将类映射到现有表时,我遇到了一些困难 我的班级: [Table("builder_User")] public class MobileUser { [Key] [Column("id")] public int Id { get; set; } [Column("beansCount")] public int BeansCount { get; set; } [Column("bonusSum")] public do

在尝试使用实体框架将类映射到现有表时,我遇到了一些困难

我的班级:

[Table("builder_User")]
public class MobileUser
{
    [Key]
    [Column("id")]
    public int Id { get; set; }
    [Column("beansCount")]
    public int BeansCount { get; set; }
    [Column("bonusSum")]
    public double BonusSum { get; set; }
    [Column("facebookUsername")]
    public string FacebookUserName { get; set; }
    [Column("firstName")]
    public string FirstName { get; set; }
    [Column("lastName")]
    public string LastName { get; set; }
    [Column("guid")]
    public string Guid { get; set; }
    [Column("job")]
    public string Job { get; set; }
    [Column("purchasedSum")]
    public double PurchasedSum { get; set; }
    [Column("facebookId")]
    public string FacebookId { get; set; }

}
数据库中的我的表

DataContext
类中,我有:

public DbSet<MobileUser> MobileUsers { get; set; }
公共数据库集移动用户{get;set;}
但是当我试图从数据库中获取用户时,我得到了一个异常

数据库创建后,DbContext已更改

当我运行
addmigration
命令时,它会生成createtable命令


那我错在哪里?谢谢

通过调用
数据库.SetInitializer(null)
数据库.SetInitializer(新的NullDatabaseInitializer()


通过将初始值设定项设置为null,EF将不再验证数据库架构,并且在架构更改时将不再创建数据库。更改架构后,您必须自己创建/更新数据库。

将初始值设定项设置为null
database.SetInitializer(null)
或使用。请注意,这将阻止EF自动生成您的db,因此您必须自己生成。您可以从@opiants中了解db初始值设定项在EF中的作用,是的,添加此语句后,它会起作用,谢谢!@opiants您应该将此作为此问题的答案,以便正确关闭并删除它h你和Ihor得到了一些分数。我正试图了解更多关于这种方法的信息,但不知道该如何称呼它。这是“使用Fluent API的代码优先”吗?更具体地说:我想先写数据库,然后写POCO,它可以清晰地映射到数据库表。我不想使用VS数据库项目/EDMX-我想写映射/POCO类。但是我似乎找不到关于这种实践的文档。我不知道具体的名称,但这是明确的ly不称为“Fluent API”。“Fluent API”用于配置架构映射。有两种方法可以配置EF即用即用:基于属性和基于Fluent API。“代码优先”只是一个开发工作流,与更常见的基于设计器的方法相比,它更以代码为中心。如果您需要更多帮助,我建议您对此提出另一个问题。@mmcrae是的,您完全可以这样做。代码优先并不意味着您不应该有一个数据库来开始开发。这是关于代码优先的一般误解您可以创建一个数据库,创建您的POCO类,然后使用fluent api(或属性)配置要映射到数据库的上下文。就我个人而言,我更喜欢使用fluent api映射我的POCO类,因为这样我的类就不会被EF特定的属性弄得乱七八糟,这也意味着我可以将我的POCO类与EF解耦。谢谢你的回答。既然你提到了,我实际上提出了一个问题来说明我的问题困惑:-我想我在“Fluent API”和“代码优先”等东西上搞混了。基本上:我不想从代码优先进行迁移,也不想从DB优先进行edmx-我希望POCO的创建独立于DB。我不确定如何做到这一点