我正在使用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,因为我找不到一个例子.
每次我想要一个专门的对象 …
我正在尝试创建一个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)
有没有办法转换谓词中的值来执行此操作?任何帮助赞赏!
我希望找到一种方法来获取数据集的第N列中的值.
因此,对于N = 6,我想要
SELECT (Column6Value) from MyTable where MyTable.RowID = 14
Run Code Online (Sandbox Code Playgroud)
有没有办法在SQL Server 2005中实现的TSQL中执行此操作?谢谢.
我有一个问题,确定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视图?寻找好的建议......
有没有办法只在第一页显示报告标题?正如预期的那样,PageHeader.PrintOnFirstPage仅显示或隐藏第一页的标题.客户希望标题仅显示在第一页上,有点像文档中的标题.我看着MS-RDL.pdf和RDL200501没有运气.我的报告是RDLC而不是RDL,但它无关紧要.如果没有简单的解决方案,我将考虑编写自定义代码来压缩页面> 1上的标题.
在.NET c#3.5中,我有一个控制台应用程序(A),它引用了几个程序集(X,Y,Z).
如何在运行时获取已加载程序集的版本信息?
我可以使用反射来获取当前正在执行的程序集的信息
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)
但不是加载的程序集.谢谢你的帮助!
我有语法问题.
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?
我经常看到这种设计模式,但没有它的名称.我很想知道设计师称这种模式是什么,以及他们如何通过合理的数据库设计来实现它.
举个简单的例子,假设学生有一个年级(1-8).如果学生的成绩为7或8,那么他们可能是荣誉学生.那么你如何跟踪学生的这个位旗,知道它只适用于某些年级的学生?
我有一个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# ×3
linq ×3
sql ×3
generics ×2
linq-to-sql ×2
.net ×1
any ×1
assemblies ×1
lambda ×1
list ×1
naming ×1
predicate ×1
rdlc ×1
select ×1
sorting ×1
sql-order-by ×1
sql-server ×1
t-sql ×1