我有一个LINQ实体,需要创建一个特殊的字符串值。它由7个不同的值用“-”分隔而成。其中一些字段在该表中使用,而另一些字段在其他表中使用。我希望以某种方式将此字段添加到实体中,以便每次需要时无需自己创建此字符串。
我想可以通过像这样的部分类将其添加到实体中:
public string SpecialField
{
get
{
return string.Format("{0}-{1}-{2}-{3}-{4}-{5}-{6}",
TableId,
Number,
ForeignTableA.Date,
ForeignTableB.Name,
ForeignTableC.ForeignTableD.Name,
ForeignTableB.ForeignTableE.Name,
ForeignTableB.Number ?? 0);
}
}
然而,在写下这句话之后,我有点不确定它是否有效。因为,除非我错了,否则每次使用该值时都会导致数据库查询所有项目。并且,例如在Where子句中使用该字段是否有效呢?
我需要在Where子句中使用该字段,并希望它发生在服务器上,这样我就不会获取更多的数据。
您应该如何最好地做到这一点?