1
我只是想嘗試實體框架來使用它而不是NHibernate。我正在使用MySql數據庫。 所以我用代碼第一個系統做了一些測試。一切正常與MsSql數據庫和架構是自動生成的。但後來我用MySql嘗試了它,並且模式生成不起作用。實體框架代碼優先 - 使用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);
}
}
}
}
而我得到這個異常:「實體類型用戶不是當前上下文的模型的一部分。」
所以這裏是我的問題,如果我使用MySql,我可以自動生成數據庫嗎?
我只是在程序集上添加[assembly:EdmSchema] EdmEntityType] on User類,現在我得到這個異常:「該類型沒有任何關鍵成員。RelationshipType或EntityType必須具有關鍵成員或具有關鍵成員的BaseType。」但是我已經有了Id屬性,而且我也嘗試過使用[Key]屬性,它也是一樣的錯誤。 – Tim 2012-08-02 09:11:49