我有一个实体框架模型,它有一个数字。我想打破它的主要因素。我有一个数组中有效素数的列表。
我的设计相关问题。我不想将主要因素存储在数据库中,在数据库中我只存储数字。但是当我加载应用程序时,我需要打印出存储的所有数字的素因子。
现在我不想在视图中进行主要突破,我想在控制器中执行此操作。所以我需要我猜我需要在模型中有素因子列表。但我不想让一个没有主要因素的数字设置:
PrimeFactor pf = new PrimeFactor() {number=12}
Console.WriteLine (pf.Primefactor) //0
所以我使用getter在modell中创建了primefactor属性,因此分解在模型中发生,所以我还在模型中存储了有效的素数列表,但这看起来很糟糕,有2个NotMappedfields。
public class PrimeFactor
{
[NotMapped]
public static readonly int[] Primes = { 2,3,5,7,13 };
[Key]
public int Id { get; set; }
[Required]
public decimal Number { get; set; }
[NotMapped]
public List<int> Pimefactor { get { return factor(Number); } }
private List<int> factor(decimal number) {
List<int> list = new List<int>();
// breakdown here using Primes.
return list;
}
}
有更好的方法吗? 感谢