代码之家  ›  专栏  ›  技术社区  ›  Stephan

是否将属性添加到多个表组合的Linq?

  •  0
  • Stephan  · 技术社区  · 15 年前

    我目前有三个独立的表:课程、类别和课程类别。courseCategory是只有courseID和categoryID的连接。我需要LinqToSQL中的一种方法,将Category属性添加到课程对象中,这些对象是从多个表中抽象出来的。我们需要将应用程序更改为只允许一个类别,但我们不想更改数据库,以防以后需要将其重新切换。

    如何向课程添加属性以获得课程类别表中的第一个类别?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Daniel Brückner    15 年前

    只需使用新属性扩展课程实体。以下内容将公开与课程相关联的单个类别(不是CourseCategory,但如果您希望课程类别,则可以轻松更改该类别),如果没有,则返回空值,如果有多个,则抛出异常。

    public partial class Course
    {
       public Category Category
       {
          get { return this.CourseCategories.SingleOrDefault().Category; }
       }
    }
    

    还可以添加setter以使属性可写。

    更新

    如果不允许关联任何类别,则甚至应该使用single()而不是singleOrDefault()。