Fir*_*DoL 3 c# sql-server-ce ef-code-first entity-framework-4.1
我对Entity框架有点困惑,我想使用代码优先方法; infact我想写一下我的数据库表是如何通过类定义组成的.
主要的问题是我需要创建一个数据库(或打开它),通过选择它的路径(用户可以选择打开哪个数据库,并在他想要的时候创建新的数据库).我已经选择了Sql server compact来实现这一点,但是我仍然不明白如何使用代码优先方法来处理这种情况,因为我不明白如何选择应该使用代码优先方法创建数据库的位置,如果是可能.
任何人都可以解释我做错了什么,并建议一个不同的路线,如果有的话?谢谢
我几天前遇到了同样的问题.以下是我如何使用它:
在应用程序启动代码中添加以下内容:
using System.Data.Entity.Database;
// ...
DbDatabase.SetInitializer(new MyDbInitializer());
DbDatabase.DefaultConnectionFactory = new SqlCeConnectionFactory(
"System.Data.SqlServerCe.4.0",
@"C:\Path\To\",
@"Data Source=C:\Path\To\DbFile.sdf");
Run Code Online (Sandbox Code Playgroud)
初始化程序应如下所示:
using System.Data.Entity.Database;
public class MyDbInitializer : CreateDatabaseIfNotExists<MyDbContext>
{
protected override void Seed(MyDbContext context)
{
// create some sample data
}
}
Run Code Online (Sandbox Code Playgroud)
如果CreateDatabaseIfNotExists不是你想要的东西,你可以使用更多种类的初始化器,或者你也可以创建自己的初始化器.有关这方面的更多信息,请访问:
http://blog.oneunicorn.com/2011/03/31/configuring-database-initializers-in-a-config-file/
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2106 次 |
| 最近记录: |