gpt4 book ai didi

c# - 在遵循数据库优先方法时,使用 [NotMapped] 将附加信息传递给 View

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:56 27 4
gpt4 key购买 nike

我正在开发一个 asp.net mvc-5 网络应用程序,我正在使用 Entity Framework 5.0。我映射了创建 .edmx 文件的 SQL 服务器数据库表。现在我想扩展模型类以具有额外的非数据库属性,所以我为我的模型类创建了一个部分类,并提供了一个额外的属性如下:-

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace Test.Models
{

public partial class User
{
[NotMapped]
public string NonDataBaseColumn { set; get; }
}
}

所以我有这些问题:

  1. 这是通过在部分类中定义附加列来传递附加属性的有效方法吗?
  2. 由于我使用的是数据库优先方法,所以我是否需要添加[NotMapped] 数据注释,或者[NotMapped] 仅在遵循代码优先时才有效方法?
  3. 在任何情况下都可以在数据库中自动创建 NotMapped 列(在我的例子中是 NonDataBaseColumn)吗?

最佳答案

is this a valid approach to pass additional attributes, by defining additional columns inside the partial classes?

从技术上讲是这样,但请跟我重复:不要将 Entity Framework 模型用作 MVC View 模型,并广为宣传。

我仍然不明白为什么几乎每个教程都展示了这种可怕的做法,每天会产生二十多个这样的问题,但这不是应该做的方式。 域模型不是 View 模型

这些教程可能会这样做,因为它非常适合“我的第一个 TODO WebApp”,因此它们要展示的代码更少,要解释的良好开发实践也更少,让您一团糟对于比这更复杂的任何事情,它都会崩溃。

例如,尝试向实体添加 SelectList 属性以提供包含数据的下拉列表,然后将数据层提取到 DAL 库中,然后挠头想知道为什么必须这样做从您的 DAL 中引用 MVC。

另请参阅:ASP.NET MVC: using EF entities as viewmodels?

至于您对 [NotMapped] 属性的问题:它完全按照其名称和文档中的说明进行操作,它会导致应用它的属性不映射到数据库列。

关于c# - 在遵循数据库优先方法时,使用 [NotMapped] 将附加信息传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612540/

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