C# 返回Null的Set语句
我在获取要提交到数据库的属性值时遇到问题。我的get语句中有一个逻辑,它根据来自其他两个属性的值返回一个值。该逻辑工作正常,并在我的网页中显示正确的值,但在数据库中,Rating字段的值始终设置为Null。下面是我的代码——如果有人能给我指出正确的方向,我将不胜感激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
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并非在所有情况下都加载此类属性的值,例如,如果指定匹配包含项。这会导致属性的行为因对象的加载方式而异,这极易出错。我也看不出为什么要存储可以从其他属性派生的值。因此,我建议不要存储该值,并以确保在检索该值时加载其他属性的方式更改设计。感谢各位,将其存储在数据库中的原因是我不希望必须编写代码多次派生该值。如果我将其存储在数据库中,我就可以随时编写报告并使用数据。