使用DataContext在现有空白数据库文件中创建架构?

时间:2010-05-13 17:47:24

标签: .net linq schema datacontext

使用已存在的DataContext空白基于文件的数据库,是否可以编写数据上下文类(即我添加的类)给设计者)创建数据库模式?

对于数据上下文,我只看到以下任何一种能力:

  • 创建一个新的数据库文件并同时创建其结构
  • 或将数据填充到具有预先存在的架构的现有数据库中。

我正在寻找这两个世界之间的混合解决方案。

更新1 (更多信息):我证明预先存在的数据库与数据上下文CreateDatabase()操作不兼容是这个错误

  

数据库   'C:\程序App_Data \ IntermediateData.mdf'   已经存在。选择其他   数据库名称。

基于此代码

using (IntermediateClassesDataContext intermediateContext = new IntermediateClassesDataContext(_getIntermediateConn())) {
    intermediateContext.CreateDatabase();
}

和这个web.config条目(为SO清理)是正在使用的:

<connectionStrings>
    <add name="IntermediateData" providerName="System.Data.SqlClient" connectionString="Data Source=W500\SQLEXPRESS;AttachDbFilename=C:\Webapp\App_Data\IntermediateData.mdf;Integrated Security=True;User Instance=True"/>

...并且所提到的数据库已经存在于具有适当访问权限的磁盘上。

更新2 (澄清):

上下文和推理=文件权限和安全性

我不想授权用户在网站数据目录中写入新文件(CreateDatabase尝试这样做);但是我不介意用户是否可以将模式和数据写入预先存在的数据文件中。如果不存在可行的解决方案,我可能会陷入困境并打开权限。

我在这里做的是在空白的DataContext画布上创建一堆新类,如下所示。这些代表我想要保存到现有空白数据库的模式:

alt text http://img8.imageshack.us/img8/5903/sampledm.png

1 个答案:

答案 0 :(得分:0)

我警告要远离CreateDatabase。听起来不错,但如果我记得它不能/不会创建任何关联/外键。