Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据库中存在的MVC实体框架计算值_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 数据库中存在的MVC实体框架计算值

C# 数据库中存在的MVC实体框架计算值,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我使用实体框架从现有数据库生成模型,我想计算属性的值。e、 g 我有一个MetaInfo表: PageTitle,字符串,不可为空 元标题,字符串,可为空 所以我构造了一个部分类: public partial class MetaInfo { public string MetaTitle { get { if (string.IsNullOrEmpty(_MetaTitle)) {

我使用实体框架从现有数据库生成模型,我想计算属性的值。e、 g

我有一个MetaInfo表:

  • PageTitle,字符串,不可为空
  • 元标题,字符串,可为空
所以我构造了一个部分类:

public partial class MetaInfo
{
    public string MetaTitle
    {
        get
        {
            if (string.IsNullOrEmpty(_MetaTitle))
            {
                return _PageTitle;
            }
            return _MetaTitle;
        }
    }
}
显然,这不起作用,因为“类型MetaInfo已经包含MetaTile的定义”

有没有办法做到这一点,保持相同的属性名称,还是我应该重命名我的计算属性


当我在这里的时候,我可以先做一些wiza ma jig并获取代码以与我现有的数据库集成吗?它会绕过这个问题吗?

按照惯例
MetaTitle
将是数据库中的列名,我认为除了为计算属性使用不同的名称之外,没有一种简单的方法可以绕过您描述的问题,类似于
DisplayMetaTitle
Friendlymetatile
ViewMetaTitle
的内容非常常见

按照惯例,
MetaTitle
将是数据库中的列名,我认为除了为计算属性使用不同的名称(如
DisplayMetaTitle
)之外,没有一种简单的方法可以绕过您描述的问题,
FriendlymetTitle
ViewMetaTitle
非常常见

应该允许您从现有数据库对代码优先模型进行反向工程。(不确定Code First是否允许您进行所需的映射,但您至少应该能够自定义映射字段/属性的名称。)我认为您需要在某处添加另一层模型。您是否试图在视图中直接使用实体类?如果是这样,则应为视图创建特定的视图模型。这些类的属性与自动生成的类几乎相同,但您可以根据需要添加额外的方法(或更改属性)。例如,添加一个名为
GetPageTitle()
的函数,该函数检查
MetaTitle
值并执行您需要的任何操作是的,我在视图中使用实体类,我认为在实体框架中使用元数据/数据注释/验证帮助,编写单独的视图模型是不经济的,在我看来,这里也不是很干燥。目前,在我找到更好的解决方案之前,我将使用一种吸气剂。谢谢:)应该允许您从现有数据库对代码优先模型进行反向工程。(不确定Code First是否允许您进行所需的映射,但您至少应该能够自定义映射字段/属性的名称。)我认为您需要在某处添加另一层模型。您是否试图在视图中直接使用实体类?如果是这样,则应为视图创建特定的视图模型。这些类的属性与自动生成的类几乎相同,但您可以根据需要添加额外的方法(或更改属性)。例如,添加一个名为
GetPageTitle()
的函数,该函数检查
MetaTitle
值并执行您需要的任何操作是的,我在视图中使用实体类,我认为在实体框架中使用元数据/数据注释/验证帮助,编写单独的视图模型是不经济的,在我看来,这里也不是很干燥。目前,在我找到更好的解决方案之前,我将使用一种吸气剂。谢谢:)是的,我知道它们映射到了列名。我不知道单一的数据和视图模型是否是最好的解决方案,甚至可能是最好的解决方案,但我希望它是:)在我找到更好的解决方案之前,这是我要使用的解决方案。谢谢:)通常建议使用单独的视图模型或DTO,特别是如果您使用的是存储库模式,它允许您将数据层与逻辑分开。在没有意识到的情况下敲打数据库,并且拥有一个将数据加载到DTO中的存储库,这对于查找性能问题非常容易。但是使用实体作为较小程序的视图模型并没有本质上的错误。是的,我知道它们映射到列名。我不知道单一的数据和视图模型是否是最好的解决方案,甚至可能是最好的解决方案,但我希望它是:)在我找到更好的解决方案之前,这是我要使用的解决方案。谢谢:)通常建议使用单独的视图模型或DTO,特别是如果您使用的是存储库模式,它允许您将数据层与逻辑分开。在没有意识到的情况下敲打数据库,并且拥有一个将数据加载到DTO中的存储库,这对于查找性能问题非常容易。但是使用实体作为较小程序的视图模型并没有本质上的错误。