Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从多个数据库表派生的LinqToSql自定义类_Linq_Linq To Sql - Fatal编程技术网

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

从多个数据库表派生的LinqToSql自定义类,linq,linq-to-sql,Linq,Linq To Sql,在我的数据库中,我有两个相关的表。让我们称它们为Job和JobType 作业具有引用JobType的外键jobTypeID 我想在dbml中创建一个自定义类,其中包含来自两个DB表的属性…基本上是来自JobType的所有Job属性和JobTypeName属性 这是一个简化的例子,但在我继续之前,我想知道这是否可行 最终,我需要一个具有适当属性的linqtosql类,以传递给解析器,该解析器处理客户端数据网格的分页、排序等 如果这有助于向我指出一个更好的方向,那么解析器将采用一个具有泛型类型的IQ

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

我想在dbml中创建一个自定义类,其中包含来自两个DB表的属性…基本上是来自JobType的所有Job属性和JobTypeName属性

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

最终,我需要一个具有适当属性的linqtosql类,以传递给解析器,该解析器处理客户端数据网格的分页、排序等


如果这有助于向我指出一个更好的方向,那么解析器将采用一个具有泛型类型的IQueryable…该类型是linqtosql类,它保存将在表中显示的数据。

我确实做到了这一点,但不是我最初想象的方式

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

性能似乎暂时还可以


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

我确实做到了,但不是我最初想象的那样

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

性能似乎暂时还可以


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

,因为您的所有表都有关系并成功地传输到DBML,那么是的,您可以这样做

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

e、 g:

命名空间控制台应用程序1
{
/// 
///LINQ Desinger创建的作业类的分部类
/// 
公共部分班级工作
{
/// 
///属性返回此作业的JobTypeName
/// 
公共字符串JobTypeName
{
得到
{
if(作业类型!=null)
返回this.JobType.JobTypeName;
返回字符串。空;
}
}
}
}

希望这能有所帮助。

因为您的所有表都获得了关系并成功地传输到DBML,那么是的,您可以这样做

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

e、 g:

命名空间控制台应用程序1
{
/// 
///LINQ Desinger创建的作业类的分部类
/// 
公共部分班级工作
{
/// 
///属性返回此作业的JobTypeName
/// 
公共字符串JobTypeName
{
得到
{
if(作业类型!=null)
返回this.JobType.JobTypeName;
返回字符串。空;
}
}
}
}

希望这有帮助。

接受了不同的答案,但这个解决方案在紧要关头对我有效。接受了不同的答案,但这个解决方案在紧要关头对我有效。
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;
            }
        }
    }
}