Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQtoSQL创建数据库_C#_Linq To Sql - Fatal编程技术网

C# 使用LINQtoSQL创建数据库

C# 使用LINQtoSQL创建数据库,c#,linq-to-sql,C#,Linq To Sql,我可以使用LINQ使用datacontext.createDatabase()创建包含一些组成表的数据库。问题是,每次我想向数据库添加一个新表并使用此方法时,我都必须先删除数据库,然后使用附加表重新创建整个数据库。这显然是空白的所有内容,我以前填充的表格 有没有一种方法可以简单地将新表添加到数据库中,而不必每次从头开始重新创建它?没有,目前没有此类功能可用 甚至在EF4中都没有——至少现在没有。。。。。。此处的这些位()没有进入最终的EF 4.1版本….:-( 我听说微软的团队正在努力开发一个解

我可以使用LINQ使用datacontext.createDatabase()创建包含一些组成表的数据库。问题是,每次我想向数据库添加一个新表并使用此方法时,我都必须先删除数据库,然后使用附加表重新创建整个数据库。这显然是空白的所有内容,我以前填充的表格


有没有一种方法可以简单地将新表添加到数据库中,而不必每次从头开始重新创建它?

没有,目前没有此类功能可用

甚至在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();
    }
}