【问题标题】:Filtering using Subsonic Active Record Child FK Objects使用亚音速 Active Record 子 FK 对象进行过滤
【发布时间】:2011-12-08 16:04:12
【问题描述】:

在某些 ORM 中,如果存在一对多关系,则表示表的类通常具有一个具有列名称(如“用户”)的对象,并使用匹配表行的内容填充属性。

由于某种原因,Subsonic 选择添加属性 ColumnName 并附加字母 s。它返回 IQueryable 而不是单个用户对象。

如何根据用户的某些属性过滤结果?

我试图做这样的事情:

 FileRecord thumbnailImageRecord = newsArticleVersion.NewsArticleVersionFileMaps
            .SingleOrDefault(f => f.FileRecords.Single().FilePurpose == 3)
            .FileRecords.Single();

有没有更好的方法在 ORM 中执行此操作,还是我只需要使用自定义 Linq?

【问题讨论】:

    标签: .net orm subsonic subsonic3 subsonic-active-record


    【解决方案1】:

    这似乎是 SubSonic 的一个缺点,值得一个更好的解决方案。

    目前的一种方法是创建一个与生成的 ActiveRecord 类同名的部分类,并添加一个自定义 getter。

    public partial class child {
      public parent parent {
        get { return parent.SingleOrDefault(x => this.parent_id == x.id); }
      }
    }
    

    如果你有勇气,应该可以通过修改T4文件更有效地做到这一点!

    【讨论】:

    • 感谢您的回答...我想我将离开 Subsonic,转向 LINQ to SQL 和 PLINQO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2011-10-22
    • 2013-02-27
    相关资源
    最近更新 更多