我从数据库中删除了catalog_filename库林,并且看到此错误:
指定的架构无效。错误: 由于类型'J_DBModel.CATALOG_TBL'不可用,因此未加载关系'J_DBModel.FK__CATALOG_T__CATEG__41B8C09B'。 以下信息对于解决先前的错误可能很有用: 所需的属性“ CATALOG_FILENAME”在类型“ Javad_New.Models.CATALOG_TBL”上不存在。
在我的模型中,catalog_filename仍然存在。
public long CATALOG_ID { get; set; }
public Nullable<long> CATEGORY_FK { get; set; }
public string CATALOG_TITLE { get; set; }
public string CATALOG_DESC { get; set; }
public string CATALOG_CATEGORY { get; set; }
public Nullable<int> CATALOG_PAGENO { get; set; }
public Nullable<bool> CATALOG_RTL_FLAG { get; set; }
public string CATALOG_FILENAME { get; set; }
public Nullable<System.DateTime> CATALOG_DATE { get; set; }
public virtual CATEGORY_TBL CATEGORY_TBL { get; set; }
答案 0 :(得分:0)
在代码第一个模式中,永远不要(删除/更改)sql。 您应该从迁移中管理事情 在您的情况下,只需将列从sql添加到表中,然后从c#类中删除并添加新的迁移
答案 1 :(得分:0)
Make changes to the database
第一步是对数据库进行必要的更改。在此示例中,唯一要做的更改是列名。很简单。重要的是要注意,如果您有任何依赖于该列名的存储过程等,则这些存储过程也应更新。
模型在您的项目中以.edmx文件存在。打开解决方案资源管理器(ctrl + alt + L),然后在顶部的搜索栏中键入.edmx。您的模型应该出现(这是唯一具有该扩展名的模型)。打开它,您将看到一个连接表的图。
在更新模型之前,有必要从模型中删除您更改的表的现有版本。在.edmx中,右键单击表之间的区域,然后选择“模型浏览器”。它将打开模型中包含的所有表的文件树。删除您在数据库中更改的表的每个实例。我发现在模型浏览器顶部的搜索栏中输入已修改表的名称会有所帮助,这将向您显示该名称的模型中的所有表。删除它们!请注意,尝试从数据库更新模型而不先删除旧表不会真正更新模型,并且您的应用程序可能无法正确编译。
现在,您的旧表已删除,请右键单击.edmx,然后选择“从数据库更新模型”。您将看到以下屏幕: