LinqToSql从多个数据库表派生的自定义类

时间:2010-11-22 17:55:31

标签: linq linq-to-sql

在我的数据库中我有两个相关的表。让我们称它们为Job和JobType Job具有引用JobType的外键jobTypeID。

我想在dbml中创建一个自定义类,其中包含来自两个数据库表的属性...基本上所有作业属性和JobType中的JobTypeName属性

这是一个简化的例子,但我想在继续之前知道这是否可行。

最终我需要一个带有相应属性的linqtosql类来传递给解析器,该解析器处理客户端数据网格的分页,排序等...

如果它指向一个更好的方向,解析器将使用一个泛型类型的IQueryable ...类型是linqtosql类,它保存将在表中显示的数据。

2 个答案:

答案 0 :(得分:1)

因为所有表都获得了关系并成功转移到了DBML,然后是的,你可以这样做

基本上为您创建一个部分类Job类(部分类来引用Linq Designer创建的Job类)并在其中放置一个属性,该属性从引用的表中返回JobTypeName

e.g:

namespace ConsoleApplication1
{
    /// <summary>
    /// Partial class for job class created by LINQ Desinger
    /// </summary>
    public partial class Job
    {
        /// <summary>
        /// Property to return the JobTypeName for this Job
        /// </summary>
        public string JobTypeName
        {
            get
            {
                if (JobType != null)
                    return this.JobType.JobTypeName;
                return string.Empty;
            }
        }
    }
}

希望这会有所帮助。

答案 1 :(得分:0)

嗯,我确实让它工作了,但不是我想象的方式......

我能够在db中创建一个视图来返回所需的列,然后将视图映射到linqtosql类。

目前表现似乎还不错。

我猜测正确的方法是探索未来项目的ado.net实体框架