估计这问题你们也不会,关于EF 4.1 Code First ; 使用 SqlLite 或者 MySQL 等非SQLServer的数据库
以前那些 Database First , Modal First 都不合口味,可是这次 Code First 出现后,就觉得太棒了!
就是我一直梦想的动态实现 类<--->数据库 互相转换。
在一些大运算量的地方,类---->内存数据库, 计算方便又快速。
但是,似乎搞了半天也没能学会用 第三方数据库
C# code
class Program
{
static void Main(string[] args)
{
NerdDinners nerdDinners = new NerdDinners();
var dinner = new Dinner
{
Title = "Par at Scott's House",
EventDate = DateTime.Parse("12/31/2013"),
Address = "Building 40",
HostedBy = "scottgu@microsoft.com"
};
nerdDinners.Dinners.Add(dinner);
nerdDinners.SaveChanges();
var dinners = from d in nerdDinners.Dinners
select d;
foreach (var item in dinners)
{
Console.WriteLine(item.ToString());
}
}
}
public class Dinner
{
public int DinnerID { get; set; }
public string Title { get; set; }
public DateTime EventDate { get; set; }
public string Address { get; set; }
public string HostedBy { get; set; }
public virtual ICollection<RSVP> RSVPs { get; set; }
}
public class RSVP
{
public int RsvpID { get; set; }
public int DinnerID { get; set; }
public string AttendeeEmail { get; set; }
public virtual Dinner Dinner { get; set; }
}
public class NerdDinners : DbContext
{
public NerdDinners(IDbConnection dbconn)
:base("abcdefg")
{
}
public DbSet<Dinner> Dinners { get; set; }
public DbSet<RSVP> RSVPs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.Configurations;
base.OnModelCreating(modelBuilder);
}
}
public NerdDinners(IDbConnection dbconn)
:base("abcdefg")
{
}
这里调用 DataContext(string str) 这个构造函数,
msdn上说:
Constructs a new context instance using the given string as the name or connection string for the database to which a connection will be made. For more information on how this is used to create a connection, see the remarks section for DbContext.
注意这个DataContext 必须是 EF 4.1 上的(必须安装EF 4.1)
然后我是这么写的:name="NerdDinners" connectionString="Data Source=Memory;Pooling=true;FailIfMissing=false" providerName="System.Data.SQLite"
然后执行,到了
nerdDinners.Dinners.Add(dinner);
也就是第一次使用,就有异常了!
杯具啊!!!!
我估计你们也不太会,死马当活马医。
有人说要有支持 .net 4.1 的 System.Data.SQLite
但是我看了很多国外的帖子,似乎都跑的好好的,怪事哩!!!!!!!
有牛人指点一二吗,谢谢~~~~~~~~
------解决方案--------------------
学习了,帮顶!
------解决方案--------------------
EFCodeFirst 官方并没有说支持 SQLite。
------解决方案--------------------
System.Data.SQLite目前不支持EF4.1 CodeFirst
你可以下载Devart的dotConnect for SQLite,它是支持EF4.1的,不过它是商业license。你也可以用sql compact 4.0, sqlce也是免费不需要安装的,或者直接用sql server来进行测试,相信过一段时间SQLite.net的新版本就会出来,到时候换下驱动就可以了。
------解决方案--------------------
啥 啥 啥 啥
------解决方案--------------------
mango DB似乎能满足你的要求