gpt4 book ai didi

c# - Entity Framework 代码优先 - 使用 MySql 创建数据库?

转载 作者:行者123 更新时间:2023-11-30 23:28:49 26 4
gpt4 key购买 nike

<分区>

我只是想尝试使用 Entity Framework 来代替 NHibernate。我正在使用 MySql 数据库。所以我对代码优先系统做了一些测试。 MsSql 数据库一切正常,模式是自动生成的。但后来我用 MySql 尝试了它,但模式生成不起作用。

public class Context : DbContext
{
public Context()
{

}

public Context(string str)
: base (str)
{

}

public DbSet<User> Users
{
get;
set;
}
}

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

public string Name
{
get;
set;
}
}

class Program
{
static void Main(string[] args)
{
var sqlBuilder =
new SqlConnectionStringBuilder
{
DataSource = "localhost",
InitialCatalog = "test",
Password = "",
UserID = "root"
};

var entityBuilder =
new EntityConnectionStringBuilder
{
Provider = "MySql.Data.MySqlClient",
ProviderConnectionString = sqlBuilder.ConnectionString,
Metadata = @"res://*"
};

var str = entityBuilder.ConnectionString;

using (var ctx = new Context(str))
{

ctx.Users.Add(new User() // exception here
{
Name = "test"
});

ctx.SaveChanges();
}

using (var ctx = new Context(str))
{
foreach (var user in ctx.Users)
{
Console.WriteLine("id:{0} name:{1}", user.Id, user.Name);
}
}
}
}

我得到了这个异常:“实体类型 User 不是当前上下文模型的一部分。”

那么我的问题是,如果我使用 MySql 可以自动生成数据库吗?

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