C# 使用LINQtoSQL创建数据库
我可以使用LINQ使用datacontext.createDatabase()创建包含一些组成表的数据库。问题是,每次我想向数据库添加一个新表并使用此方法时,我都必须先删除数据库,然后使用附加表重新创建整个数据库。这显然是空白的所有内容,我以前填充的表格C# 使用LINQtoSQL创建数据库,c#,linq-to-sql,C#,Linq To Sql,我可以使用LINQ使用datacontext.createDatabase()创建包含一些组成表的数据库。问题是,每次我想向数据库添加一个新表并使用此方法时,我都必须先删除数据库,然后使用附加表重新创建整个数据库。这显然是空白的所有内容,我以前填充的表格 有没有一种方法可以简单地将新表添加到数据库中,而不必每次从头开始重新创建它?没有,目前没有此类功能可用 甚至在EF4中都没有——至少现在没有。。。。。。此处的这些位()没有进入最终的EF 4.1版本….:-( 我听说微软的团队正在努力开发一个解
有没有一种方法可以简单地将新表添加到数据库中,而不必每次从头开始重新创建它?没有,目前没有此类功能可用 甚至在EF4中都没有——至少现在没有。。。。。。此处的这些位()没有进入最终的EF 4.1版本….:-(
我听说微软的团队正在努力开发一个解决方案(EF“Migrations”)——但它仍在开发中我认为有两种方法可以做到这一点 首先 您可以使用DataContext的-方法来运行一些T-SQL语句来创建表 第二 如果按照建议映射了表类型,则可以使用此hack函数
附加的代码创建了一个数据库
dynamicDatabase11
,以及一个表books
public class MyDatabse : DataContext
{
public Table<Bookss> Bookss;
public MyDatabse(string connection) : base(connection) { }
}
[Table(Name = "Books")]
public class Bookss
{
[Column(IsPrimaryKey = true)]
public string Title;
[Column]
public string Rating;
}
class Program
{
static void Main(string[] args)
{
CreateDatabase("DynamicDatabase11");
}
public static void CreateDatabase(string Dbname )
{
MyDatabse db = new MyDatabse("ConString"+Dbname+"");
db.CreateDatabase();
}
}
公共类MyDatabase:DataContext
{
公共桌上书;
公共MyDatabase(字符串连接):基本(连接){}
}
[表(Name=“Books”)]
公共类图书
{
[列(IsPrimaryKey=true)]
公共字符串标题;
[专栏]
公共字符串评级;
}
班级计划
{
静态void Main(字符串[]参数)
{
CreateDatabase(“DynamicDatabase11”);
}
公共静态void CreateDatabase(字符串Dbname)
{
MyDatabase db=新的MyDatabase(“ConString”+Dbname+”);
db.CreateDatabase();
}
}
但是,您可以创建一个示例数据类,在重新创建时填充您的数据库。我想它可能适合于开发。@nosuchnick:这是EF 4.1代码中的第一个,对吧?不要认为Linq到SQL有任何相似之处。嗯,可能吧。我现在第一次使用Linq和EF,EF4.1。+1您的第一个选项是我们以前使用的当我们使用L2S时是这样做的。我们用编程方式在模型上创建的差异信息创建了一系列语句,并执行了这些语句。工作正常。这是如何回答OPs问题的?
public class MyDatabse : DataContext
{
public Table<Bookss> Bookss;
public MyDatabse(string connection) : base(connection) { }
}
[Table(Name = "Books")]
public class Bookss
{
[Column(IsPrimaryKey = true)]
public string Title;
[Column]
public string Rating;
}
class Program
{
static void Main(string[] args)
{
CreateDatabase("DynamicDatabase11");
}
public static void CreateDatabase(string Dbname )
{
MyDatabse db = new MyDatabse("ConString"+Dbname+"");
db.CreateDatabase();
}
}