【问题标题】:Use DataContext to create schema in an existing blank database file?使用 DataContext 在现有的空白数据库文件中创建模式?
【发布时间】:2010-05-13 17:47:23
【问题描述】:

使用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

【问题讨论】:

    标签: .net linq schema datacontext


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2014-02-14
      • 2011-03-06
      • 2013-09-30
      • 1970-01-01
      • 2021-05-02
      • 2013-08-05
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多