gpt4 book ai didi

entity-framework - 向 Entity Framework 中的现有表添加新列

转载 作者:行者123 更新时间:2023-12-03 14:35:37 25 4
gpt4 key购买 nike

我在数据库的表中添加了一个新列。该表已在现有 Entity Framework 模型中定义。我已经完成了这里关于如何做到这一点的大部分项目,但它仍然失败。

一点背景知识,这个实体模型至少有3年没有更新了。因此,除了我要添加的列之外,我知道当时还添加了许多其他列,但从未包括在内。大约 9 个月前我接手了这个项目,一直未能成功更新模型。

第一次尝试:

  • 在 Visual Studio 中打开模型
  • 右键单击背景
  • 单击“从数据库更新模型...”
  • 单击“刷新”选项卡
  • 精选表
  • 高亮具体表
  • 点击完成

  • 结果:
  • 删除了我模型中的数十个表的类
  • 相关表格未更新

  • 第二次尝试
  • 恢复所有源
  • 同上,但
  • 打开更新向导后,单击删除选项卡
  • 精选表
  • 点击完成
  • 删除所有表
  • 保存 EF 模型/关闭/打开它
  • 回到更新向导添加选项卡
  • 点击的表格
  • 当我展开所有内容时,没有显示任何表格
  • 选中表级别的复选框

  • 结果
  • 我的表都没有被添加回来,但任何不是
    最初包含被添加

  • 第三次尝试
  • 恢复所有源
  • 删除了两个 .tt 文件
  • 打开更新向导
  • 单击“为所有内容添加”

  • 结果
  • 没有重新创建任何内容,没有 .tt 文件或其他任何内容。

  • 第四次尝试
  • 恢复源
  • 从 EF 模型中删除的表
  • 打开更新向导
  • 单击添加表

  • 结果
  • 删除了我模型中的数十个表的类
  • 有问题的表没有添加回来

  • 最后的尝试
  • 手动将实体添加到模型

  • 结果
  • 代码全部编译并运行,但从未从数据库中检索到值或更新

  • 任何可以提供的帮助或指导将不胜感激,因为我正处于关键时刻并且必须更新模型。

    最佳答案

    “从数据库更新模型”使用起来很困难/很慢,并且容易出错。它会生成您可能不想要/不需要的其他东西。所以手动添加你需要的列会更好。
    我建议您在 VS 编辑器之外执行此操作,因为根据模型/表的数量,在 VS 中打开文件可能会非常慢。

  • 因此,在 Windows Exlorer 中,右键单击 *.edmx文件并用记事本(或 Notepad++/Textpad)打开。
  • 搜索文字 <EntityType Name="YourTableNameToAddColumn"> .
  • 添加属性 <Property Name="YourNewColumnName" Type="varchar" MaxLength="64" />
  • 搜索文字 <MappingFragment StoreEntitySet="YourTableNameToAddColumn">
  • 将映射添加到新列 <ScalarProperty Name="YourNewColumnName" ColumnName="YourNewColumnName"/>
  • 保存 *.edmx文件
  • 关于entity-framework - 向 Entity Framework 中的现有表添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35950795/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com