Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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# 返回Null的Set语句_C#_Ef Code First_Visual Studio 2013 - Fatal编程技术网

C# 返回Null的Set语句

C# 返回Null的Set语句,c#,ef-code-first,visual-studio-2013,C#,Ef Code First,Visual Studio 2013,我在获取要提交到数据库的属性值时遇到问题。我的get语句中有一个逻辑,它根据来自其他两个属性的值返回一个值。该逻辑工作正常,并在我的网页中显示正确的值,但在数据库中,Rating字段的值始终设置为Null。下面是我的代码——如果有人能给我指出正确的方向,我将不胜感激 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; usin

我在获取要提交到数据库的属性值时遇到问题。我的get语句中有一个逻辑,它根据来自其他两个属性的值返回一个值。该逻辑工作正常,并在我的网页中显示正确的值,但在数据库中,Rating字段的值始终设置为Null。下面是我的代码——如果有人能给我指出正确的方向,我将不胜感激

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

namespace PSA.Models
{
    public class Issue
    {
        public virtual int IssueID { get; set; }
        public virtual int ProbableClassificationId { get; set; }
        public virtual ProbableClassification ProbableClassification { get; set; }
        public virtual int SeverityClassificationId { get; set; }
        public virtual SeverityClassification SeverityClassification { get; set; }
        string ratingstatus;
        public virtual string Rating 
        {
            get 
            {
                if (ProbableClassification != null && SeverityClassification != null)
                {
                    if (SeverityClassification.Severity == "Minor")
                    {
                        ratingstatus = "Low";
                    }
                    if (ProbableClassification.Probability == "Not Likely" && SeverityClassification.Severity == "Medium")
                    {
                        ratingstatus = "Low";
                    }
                    if (ProbableClassification.Probability == "Likely" && SeverityClassification.Severity == "Medium")
                    {
                        ratingstatus = "Medium";
                    }
                    if (ProbableClassification.Probability == "Definitely" && SeverityClassification.Severity == "Medium")
                    {
                        ratingstatus = "Medium";
                    }
                    if (ProbableClassification.Probability == "Not Likely" && SeverityClassification.Severity == "Major")
                    {
                        ratingstatus = "Low";
                    }
                    if (ProbableClassification.Probability == "Likely" && SeverityClassification.Severity == "Major")
                    {
                        ratingstatus = "High";
                    }
                    if (ProbableClassification.Probability == "Definitely" && SeverityClassification.Severity == "Major")
                    {
                        ratingstatus = "Crtical";
                    }

                }
            return ratingstatus;
            }
            set
            {
                ratingstatus = value;
            }
        }

    }
}

为什么要将该值保存到数据库中?我会犹豫是否向数据库中添加一个完全冗余的列,也就是说,可以使用其他列计算该列。据我所知,您的代码的返回值取决于ProbableClassification和SeverityClassification。AFAIK,EF并非在所有情况下都加载此类属性的值,例如,如果指定匹配包含项。这会导致属性的行为因对象的加载方式而异,这极易出错。我也看不出为什么要存储可以从其他属性派生的值。因此,我建议不要存储该值,并以确保在检索该值时加载其他属性的方式更改设计。感谢各位,将其存储在数据库中的原因是我不希望必须编写代码多次派生该值。如果我将其存储在数据库中,我就可以随时编写报告并使用数据。