Ben*_*sen 13 .net entity-framework code-first sql-server-ce ef-code-first
我已经以Entity Framework Code-First约定的方式定义了一组类,并使用System.ComponentModel.DataAnnotations属性注释了类属性.
现在我想从此代码生成SQL Server Compact Edition(SCSE)(4.0)数据库.
需要什么代码才能执行此操作以及需要导入哪些程序集?
到目前为止,我已导入C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition\v4.0\Desktop {System.Data.SqlServerCe.dll,System.Data.SqlServerCe.Entity\System.Data.SqlServerCe. Entity.dll} dll文件.
任何指针赞赏.文章和诸如此类的.
Ben*_*sen 15
我找到了解决方案.关键是这行代码:
DbDatabase.DefaultConnectionFactory = new
SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
Run Code Online (Sandbox Code Playgroud)
这是一个完整的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Proto
{
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Database;
using System.Data.SqlServerCe;
using System.ComponentModel.DataAnnotations;
class Program
{
static void Main(string[] args)
{
DbDatabase.DefaultConnectionFactory = new
SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
DbDatabase.SetInitializer(
new DropCreateDatabaseIfModelChanges<ProtoCatalog>()
);
using (var db = new ProtoCatalog())
{
var user = new User
{
Name = "bob",
Password = "123",
Creation = DateTime.Now,
PrimaryEmailAddress = "bob@example.com"
};
db.Users.Add(user);
db.SaveChanges();
Console.ReadKey();
}
}
}
public class ProtoCatalog : DbContext
{
public DbSet<User> Users { get; set; }
}
public class User
{
[Key, StringLength(50)]
public string Name { get; set; }
[Required, StringLength(100)]
public string Password { get; set; }
[Required, StringLength(320)]
public string PrimaryEmailAddress { get; set; }
[StringLength(320)]
public string SecondaryEmailAddress { get; set; }
[Required]
public DateTime Creation { get; set; }
public bool Active { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
尽管如此,API可能会在EF Code-First CTP 5和RTM之间发生变化,但现在就是这样做的.
| 归档时间: |
|
| 查看次数: |
13999 次 |
| 最近记录: |