当使用代码优先的EntityFramework时,我需要在其他属性之前设置一个属性 - 当从数据库创建对象时,如何指定它调用属性集的顺序?
E.g。
public class Person
{
public string Name { get; set; }
public string Something
{
get { return something; }
set
{
something = value + " for " + Name;
}
}
private string something;
}
在上面的代码中,我需要在设置Something属性时设置Name属性。
这不是实际的例子 - 我知道还有其他方法可以实现这一点,但我不是在追求那些,而是我如何告诉EF在某事之前设置名字。
答案 0 :(得分:0)
我想了解你问题的背景。我将做出以下假设:
我认为您的错误是尝试将派生部分添加到您要存储的值中。计算另一个属性中的漂亮名称,或者在get:
上计算UPDATE 有一个示例覆盖了Something属性的get,但删除了,因为我觉得这是不好的做法。
public class Person
{
public string Name { get; set; }
public string Something { get; set; }
public string getFancySomething {
{ return Something + " for " + Name; }
}
}
最后 - (这里是我可以使用一些帮助的地方,因为我没有碰到我需要做这样的事情)我的猜测是你不需要存储部分计算的属性{{1在你尝试的方式,但如果你需要,我认为其他细节可能会帮助别人为你提供更好的答案。
更新2 正如我的评论中所描述的 - 不确定这会起作用,但感觉非常错误,但你可以尝试类似的东西:
Something
然后在setter中:
modelBuilder.Entity<Person>().Ignore(x => x.Something);
这又取决于你的需求,并且不能满足传递这个值的任何需要,我不确定这是一个好主意。