Почему вы создаете вручную классы сущностей?(почему вы не используете файлы sqlmetal.exe и / или .dbml?) Ручное написание классов - не лучший способ, поскольку LinqToSql выдает действительно ужасные сообщения об исключениях, когда ошибка связана с определением сущностей.
Но чтобы ответить на ваш вопрос, да, вам не хватает атрибутов [Association]
.(который sqlmetal.exe сгенерировал бы для вас.) Без этого вы не можете так просто писать запросы LINQ, которые работают между таблицами / связями.
Что-то вроде:
[Column]
[DisplayName("Department")]
[Required(ErrorMessage = "Please select a department")]
public int DepartmentID { get; set; }
private EntityRef<Department> department;
[Association(IsForeignKey = true, ThisKey = "DepartmentId"]
public Department Department
{
get { return department.Entity; }
set { department.Entity = value; }
}
Теперь вы можете писать запросы, похожие на:
db.Employees.Where(x => x.Department.Name == "Accounting");
Однако вы действительно делать не должныэто от руки.