小编Ash*_*ine的帖子

实现IEnumerable

我正在使用LINQ,并且很难理解如何在查询跨表时使LINQ中的新"域模型"类工作.我正在使用Linq to SQL和.NET 3.5中的C#.

假设我想要一个Extended Client类:

public class ExtendedClient 
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string strVal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的数据层中,我想从两个表中填充它(dc是我的DataContext):

public ExtendedClient getExtendedClient(int clientID)
{
    var c = dc.GetTable<tClient>();
    var cs = dc.GetTable<tClientSetting>();
    var q = from client in c
            join setting in cs
            on client.ClientID equals setting.ClientID
            where client.ClientID == clientID
            select new ExtendedClient { client, setting.strValue };
    return q;   
}
Run Code Online (Sandbox Code Playgroud)

我试图返回表tClient中的行加上tClientSetting中的一个额外列.

我得到的令人讨厌的错误是:无法使用集合初始化程序初始化类型'ExtendedClient',因为它没有实现'System.Collections.IEnumerable'并且不能隐式地将类型'System.Linq.IQueryable'转换为'ExtendedClient'.存在显式转换(您是否错过了演员?)

我意识到这是一个基本的错误,但我无法确定如何最好地实现IEnumerable,因为我找不到一个例子.

每次我想要一个专门的对象 …

generics linq-to-sql

4
推荐指数
1
解决办法
4654
查看次数

需要使用DateTime转换的lambda表达式OrderBy

我正在尝试创建一个lambda表达式(Linq,C#3.5),它可以对数据类型为String但实际上包含可解析的DateTime的值执行OrderBy.

例如,典型值可能是"5/12/2009","1/14/2008"等.

下面的OrderBy子句可以正确地进行排序(就像字符串数据一样),但实际上我想将这些值视为DateTimes,并按日期执行排序.(sortColumn类似于"dateCreated".)

List<MyObject> orderedList = unorderedList.OrderBy(p => p.Details.Find(s => s.Name == sortColumn).Value).ToList();
Run Code Online (Sandbox Code Playgroud)

有没有办法转换谓词中的值来执行此操作?任何帮助赞赏!

c# linq predicate sql-order-by

4
推荐指数
1
解决办法
9646
查看次数

帮助TSQL - 获取行的第N列中的值的方法?

我希望找到一种方法来获取数据集的第N列中的值.

因此,对于N = 6,我想要

SELECT (Column6Value) from MyTable where MyTable.RowID = 14
Run Code Online (Sandbox Code Playgroud)

有没有办法在SQL Server 2005中实现的TSQL中执行此操作?谢谢.

sql t-sql sql-server

3
推荐指数
1
解决办法
4308
查看次数

如何在LINQ中为结果集创建返回类型

我有一个问题,确定c#和LINQ如何解决处理数据结构的常见问题,该数据结构不一定返回表结构,而是结果集.

我有一个有效的存储过程,并将其包含在我的DBML中

[Function(Name="dbo.p_GetObject")]
public int p_GetObject([Parameter(Name="ObjectType", DbType="NVarChar(200)")] string objectType, [Parameter(Name="ItemState", DbType="Bit")] System.Nullable<bool> itemState, [Parameter(Name="IsPublished", DbType="Bit")] System.Nullable<bool> isPublished)
{
    IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), objectType, itemState, isPublished);
    return ((int)(result.ReturnValue));
}
Run Code Online (Sandbox Code Playgroud)

dbml表示返回类型为(None),这可能是关键问题.但是,我没有与结果集匹配的DBML对象.

SP采用三个参数,并返回一个包含三列(ID,Name,Value)和多行的结果集.我可以为此创建一个数据对象,并将其命名为resultSet

当我为此编写函数调用时,我会陷入困境:

public List<resultset> GetObject(string objectType, bool itemState, bool isPublished)
{
    MyDataContext.p_GetObject(objectType, itemState, isPublished);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如何对存储过程进行数据上下文调用以填充我的resultSet对象?有更好的方法吗?返回类型应该是什么?一个SQL视图?寻找好的建议......

sql linq stored-procedures linq-to-sql

2
推荐指数
1
解决办法
3699
查看次数

RDLC在第一页上打印PageHeader

有没有办法只在第一页显示报告标题?正如预期的那样,PageHeader.PrintOnFirstPage仅显示或隐藏第一页的标题.客户希望标题仅显示在第一页上,有点像文档中的标题.我看着MS-RDL.pdfRDL200501没有运气.我的报告是RDLC而不是RDL,但它无关紧要.如果没有简单的解决方案,我将考虑编写自定义代码来压缩页面> 1上的标题.

rdlc

2
推荐指数
1
解决办法
4462
查看次数

如何在运行时检索已加载程序集的信息?(c#,.NET)

在.NET c#3.5中,我有一个控制台应用程序(A),它引用了几个程序集(X,Y,Z).

如何在运行时获取已加载程序集的版本信息?

我可以使用反射来获取当前正在执行的程序集的信息

System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)

但不是加载的程序集.谢谢你的帮助!

.net c# assemblies

1
推荐指数
1
解决办法
3677
查看次数

使用Linq从包含List的List中的List中进行选择

我有语法问题.

public class Student
{
   int StudentId;
   string Name;
}

public class Course
{
   int CourseId;
   List<Student> Students;
}


int[] studentIds = { 5, 7, 12 };
List<Course> allCourses = myDataContext.Courses.ToList();
Run Code Online (Sandbox Code Playgroud)

使用Lambda表达式查询表达式,如何获得包含数组中任何学生的所有课程的筛选列表studentIds

linq lambda select any

1
推荐指数
1
解决办法
299
查看次数

数据库设计模式,其中一个属性仅适用于另一个属性具有特定值的情况

我经常看到这种设计模式,但没有它的名称.我很想知道设计师称这种模式什么,以及他们如何通过合理的数据库设计来实现它.

举个简单的例子,假设学生有一个年级(1-8).如果学生的成绩为7或8,那么他们可能是荣誉学生.那么你如何跟踪学生的这个位旗,知道它只适用于某些年级的学生?

sql database-design naming design-patterns

1
推荐指数
1
解决办法
254
查看次数

如何在父列表<>中对List <>的成员的值进行排序

我有一个List排序问题.我正在使用c#3.0和这样的通用List结构:

public class myObject
{
    public int ID { get; set; }
    public List<mySetting> setting { get; set; }
}

public class mySetting
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Value { get; set; }  // sort on this!
}
Run Code Online (Sandbox Code Playgroud)

使用此结构,我使用LINQ查询填充myObject的List.

List<myObject> lmo = new List<myObject>();
lmo.SomeFillOperation():
Run Code Online (Sandbox Code Playgroud)

我现在要做的是对整个List<myObject>单独的<mySetting>[].Value值进行排序.编辑:(所以这将在一个键控索引上排序,例如mySetting [3] .Value).我意识到我可以在我身上做到这一点SomeFillOperation(),但我想在List成立后做到这一点.

是否有推荐或简单的方法来做到这一点?你看到过一个很好的例子吗?提前致谢!

c# sorting generics list

0
推荐指数
1
解决办法
588
查看次数