实体框架 - 首先反向工程代码 - 覆盖更改

2024-04-09

我使用 EF Power Tools 来反向工程现有的数据库。这可以。在 EDMX 数据库第一条路线下,我将为任何覆盖(例如数据注释)创建部分类,例如这里,账期是原始的 EntityObject:

[MetadataType(typeof(LedgerPeriodMetaData))]
public partial class LedgerPeriod
{
    public class LedgerPeriodMetaData
    {

        [Required(ErrorMessage = "Period Start Date Required")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
        [DataType(DataType.Date)]
        public object PeriodDateFrom { get; set; }

        [Required(ErrorMessage = "Period End Date Required")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
        [DataType(DataType.Date)]
        public object PeriodDateTo { get; set; }

    }
}

这可以。现在我是否使用相同的方法Code First 逆向工程或者是否有任何自定义设置,如果您必须多次运行电动工具,因为假设我向数据库添加了一个新表,它不会覆盖之前创建的现有模型的任何更改。

这最终意味着我可以对实际模型类本身进行更改,而不是创建部分类。

可以在此处找到 EF Powertools 的参考:

http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx


Code First 并不正式支持逆向工程场景,这就是它被称为 Code First 的原因。电动工具很好,但正如你所说,它们会覆盖一些东西。 EF Code First 的设计目的是让您可以对模型本身进行更改,而不是对部分模型和元数据进行更改(尽管您仍然可以根据需要使用这些模型)。

您可以做的是使用 EF Power Tools 的自定义逆向工程模板功能,然后修改 T4 模板以将部分声明添加到生成的类中,或者您可以添加代码来测试特定实体并根据需要进行修改。

然而,实际上,您不需要这样做。将实体传递到视图被认为是糟糕的设计,这是将这些属性添加到模型的唯一原因。最重要的是,您强迫视图与数据模型具有相同的要求,这也是一个糟糕的选择。

相反,您应该在视图中使用专用视图模型,并将数据属性放在视图模型上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架 - 首先反向工程代码 - 覆盖更改 的相关文章

随机推荐

  • 检测 iOS 中的旋转变化

    我正在制作一个 iOS 应用程序 需要在旋转时进行一些界面重新排列 我试图通过实施来检测这一点 void orientationChanged NSNotification note 但这会在设备正面朝上或正面朝下时向我发出通知 我想要一种
  • 如何将数组对象中的数据保存到 MongoDB

    我在将数据从数组对象保存到 MongoDB 数据库时遇到问题 我有带有嵌入子文档的主文档的架构 主文档和所有其他子文档的保存均成功 但子文档是数组除外 正如您从屏幕截图中看到的 子文档中的字段没有保存到数据库中 Robo 3T 的屏幕截图
  • TaskGraph.useFilter 替代 kotlin dsl

    我正在寻找 gradle 中这行代码的替代方案 并且正在寻找 kotlin dsl 中的对应部分 任何人都可以对此进行一些说明 因为它阻止了我的构建 并且由于 usefilter 在 kotlin dsl 中不可用而不知所措 gradle
  • 双击:缩放 Android MapView?

    经过一些工作后 我的路线应用程序运行良好 我唯一想添加的是双击放大功能 但我不知道如何添加 你能给我一个提示吗 我也一直在寻找答案 示例 但找不到有效的代码 最后 这是对我有用的代码 MyMapActivity java public cl
  • 确定一个数字是否是十的倍数或在一组特定范围内

    我的程序中有一些需要的循环 我可以写出伪代码 但我不完全确定如何逻辑地编写它们 I need if num is a multiple of 10 do this if num is within 11 20 31 40 51 60 71
  • MvvmCross 5.x 的 MvvmCross 侧边栏导航

    我要为我的应用程序实现两种类型的导航 即侧边栏导航和父子导航 我的应用程序从汉堡 侧边栏 菜单开始 侧边栏菜单中的第一项应执行导航堆栈的重置并打开主视图 主视图控制器应该启动根堆栈导航 因此主视图上的每个按钮都应该打开一个新视图 新视图上的
  • 运行 Django 应用程序时出错

    当我在 pycharm 或 cmd 中运行 django 项目时 出现此错误 我应该怎么办 C Program Files x86 JetBrains PyCharm 3 4 1 bin runnerw exe C Python34 pyt
  • 如何简化url

    你好 在我的网站中 我发现他们的网址非常简单 例如 http example com questions 4486620 randomaccessfile probelm http example com questions 4486620
  • 为什么 MonkeyRunner.waitForConnection() 在我的环境中不起作用?

    Script from com android monkeyrunner import MonkeyRunner MonkeyDevice device MonkeyRunner waitForConnection 5 192 168 6
  • 在 SQL Server 2008 中存储闰秒

    这个周末是一个特别长的周末 因为将会有一场额外的第二秒 http en wikipedia org wiki Leap second Insertion of leap seconds插入之后23 59 596月30日 我们有一个全天候记录
  • c# - 在执行期间将信息从 UI 传递到 BackgroundWorker

    我有一个使用后台工作线程的 C 应用程序 并且非常成功地从正在运行的线程更新 UI 该应用程序涉及网络上的最短路径路由 随着后台工作进程的进行 我在 UI 上显示网络和最短路径 我想允许用户在应用程序运行时通过使用滑块减慢显示速度 我发现这
  • Javascript:如何检测浏览器窗口是否在 Android 设备上滚动到底部

    我正在我的应用程序中实现延迟加载功能 它在 iPhone 桌面 选项卡上都能正常工作 但不适用于 Android 手机 下面是我计算底部的代码 window on scroll function var scrollHeight scrol
  • 数据库性能:按列过滤与单独表过滤

    我想知道对于以下情况最好的方法是什么 我在数据库中有一个订单表 显然包含所有订单 但这些实际上是所有订单 因此包括刚刚标记为 完成 的完整 完成的订单 我想从所有未结订单中计算一些内容 例如未结金额 未结项目等 什么会更好的性能明智 保留
  • 为什么卸载时我的服务没有被删除? (维克斯)

    即使重新启动后 即使可执行文件消失 服务仍然存在 我使用的是 WIX 版本 3 0 5419 0
  • 内部类和外部成员的访问

    我一直认为内部类可以访问其外部类中的所有数据 但有代码 template
  • 如何获取二维列表中的每个第一个元素

    我有一个这样的列表 a 4 0 4 4 0 3 0 3 3 6 3 5 6 4 8 我想要这样的结果 EVERY列表中的第一个元素 4 0 3 0 3 5 I tried a 1 0 但它不起作用 就可以得到索引了 0 来自列表理解中的每个
  • 如果我在 onResume 中调用 getMeasuredWidth() 或 getWidth() 进行布局,它们将返回 0

    如果我在 onResume 中调用 getMeasuredWidth 或 getWidth 进行布局 它们将返回 0 我认为此时此刻还没有绘制出该视图 另外 我认为我需要将 getMeasuredWidth 或 getWidth 放入绘制布
  • 使用 MingW 64 绕过 fork() 的最佳方法?

    我浏览了十几个关于 Windows 没有的链接fork 以及应该如何使用CreateProcess or CreateThread试图解决这个问题 但是不允许时间和风险来重写一大段遗留代码 有没有一种快速 简单的方法来获取fork在 Win
  • Ruby 中 as_json 和 to_json 方法的区别

    两种方法有什么区别as json and to json 它们相同吗 如果不是的话它们之间有什么区别 to json返回字符串 as json返回带有字符串键的哈希值 gt name gt Konata Izumi age gt 16 1
  • 实体框架 - 首先反向工程代码 - 覆盖更改

    我使用 EF Power Tools 来反向工程现有的数据库 这可以 在 EDMX 数据库第一条路线下 我将为任何覆盖 例如数据注释 创建部分类 例如这里 账期是原始的 EntityObject MetadataType typeof Le