c# - 当查找列表包含多条记录时,查找列表停止工作 (XAF)
问题描述
我有一个用于 SalesLines 的 NonPersistentObject,它具有两个持久查找属性 Product 和 TaxRate
TaxRate 查找工作正常,给我一个数据库中所有税码的列表。即使数据库中有很多产品,产品查找也是空的。
代码是
private Product _product;
[ImmediatePostData]
public virtual Product ProductRecord
{
get
{
if (_product == null || _product?.ItemId != ItemId)
{
_product = PersistentObjectSpace.FindObject<Product>(CriteriaOperator.Parse("[ItemId] = ?", ItemId));
}
return _product;
}
set
{
_product = value;
ItemId = _product.ItemId;
OnPropertyChanged("ProductRecord");
}
}
private TaxRate _taxRate;
[ImmediatePostData]
public virtual TaxRate TaxRecord
{
get
{
if (_taxRate == null || _taxRate?.TaxCodeId != TaxCodeId)
{
_taxRate =
PersistentObjectSpace.FindObject<TaxRate>(CriteriaOperator.Parse("[TaxCodeId] = ?", TaxCodeId));
}
return _taxRate;
}
set
{
_taxRate = value;
TaxCodeId = _taxRate.TaxCodeId;
TaxPercentage = (decimal)_taxRate.Percentage;
OnPropertyChanged("TaxRecord");
}
}
实体是
[DefaultProperty("ProductCode")]
[NavigationItem("Config")]
public class Product : BasicBo
{
public Product()
{
ExtMaterial = new ExtMaterialProperty();
}
[Key]
public int ItemId { get; set; }
public string ItemName { get; set; }
[Column("Item Number")] public string ProductCode { get; set; }
[MaxLength(10)] public string UnitName { get; set; }
[ForeignKey("ItemId")]
public virtual ExtMaterialProperty ExtMaterial { get; set;}
public override string ToString()
{
return ProductCode;
}
}
和
[NavigationItem("Configuration")]
[Table("TaxCode")]
[DefaultProperty("TaxCode")]
[ImageName("BO_List")]
public class TaxRate : BasicBo
{
[Key] public short TaxCodeId { get; set; }
[Required]
[RuleRequiredField(DefaultContexts.Save)]
[StringLength(20, ErrorMessage = "The field cannot exceed 20 characters. ")]
public string TaxCode { get; set; }
[Required]
[RuleRequiredField(DefaultContexts.Save)]
public decimal Percentage { get; set; }
public override string ToString()
{
return TaxCode;
}
}
两个 DbSet 都在 DbContext 中
我尝试从产品中删除 ExtMaterial 导航属性,但没有帮助。我正在使用 XAF 21.1.4、框架 4.7.2、EF 6.4.4
我确实曾经有两个查找工作。我不确定发生了什么变化。
[更新] 我将尝试创建一个新的查找表并不断更改它直到它崩溃。到目前为止,技术适用于以下结构和一些记录
[NavigationItem("Configuration")] [Table("FunCat")] [DefaultProperty("FunCatCode")] [ImageName("BO_List")] public class FunCategory : BasicBo { [Key] public int FunCatId { get; 放; }
public string FunCatCode { get; set; }
public virtual TaxRate TaxRate { get; set; }
public override string ToString()
{
return FunCatCode;
}
}
我发现当数据库中有超过一定数量的 FunCategories 时,不良行为就开始了。此数字由 Options LookupSmallCollectionItemCount 定义,如此处所述
解决方案
出现问题是因为我已停用 FullTextFilterAction 控制器。
推荐阅读
- quarkus - Quarkus RESTEasy 反应式在 2.2 版之前如何工作?
- r - 绘制一个曲面并使用 R 在其上添加点:plot3D 的问题
- ios - 使用混合分数和绝对值来调整 NSCollectionLayoutItem 的大小
- javascript - 将来自 AsyncStorage 的数据放入 Text
- python - 如何将一列中的值添加到时间戳列作为天?
- flutter - 我在尝试运行版本 1.22.6 的颤振项目时遇到此错误
- data-visualization - Tableau 在计算字段内添加过滤器
- validation - Flask wtf验证器长度最小值和最大值不起作用
- java - 为什么 InfluxDB 会返回查询结果列表
- python - for循环中的子图