可能重复:
LINQ在两个列表中找到差异
我想找到2系列之间的区别.所以我Except在LINQ语句中使用.但Except似乎只有在第一个集合长于第二个集合时才有效.例如,即使2个集合不同,也不会返回任何结果.
double[] numbers1 = { 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };
IEnumerable<double> onlyInFirstSet = numbers2.Except(numbers1);
Run Code Online (Sandbox Code Playgroud)
任何人都可以确认是否是这种情况?如果是这样,在编写查询之前是否必须检查集合长度,因为我不知道哪个集合在编译时会更大.
编辑
我想我的问题并不清楚.我不关心哪个集合包含什么.我只是想找到两个系列之间的区别.我怎样才能做到这一点?
我想在组合中存储组织结构图.我认为树数据结构最适合我的需要,因为我需要向一个节点添加多个节点.
LinkedList 如果我理解正确的话,只提供一个节点添加到另一个节点.
我看过C5 treeset集合,但它似乎没有Add()方法向一个节点添加2个以上的节点.
我也Treeview从Windows窗体库查看了类,但我不想将Windows窗体dll添加到我的项目中,因为我正在构建服务层应用程序.(或者没事?)
我不想写自己的树集合类,如果已经有第三方提供的那个?
有什么建议吗?
谢谢
我正在关注Scott Gu的文章,以创建一个动态的LINQ http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library的.aspx
他举了一个例子:
Expression<Func<Customer, bool>> e1 =
DynamicExpression.ParseLambda<Customer, bool>("City = \"London\"");
Expression<Func<Customer, bool>> e2 =
DynamicExpression.ParseLambda<Customer, bool>("Orders.Count >= 10");
IQueryable<Customer> query =
db.Customers.Where("@0(it) and @1(it)", e1, e2);
Run Code Online (Sandbox Code Playgroud)
这在我的情况下工作正常.但是,我有未知数量的where子句,这是在运行时决定的.
任何人都可以告诉我如何创建一个通用的Where子句,例如
Where("@0(it) and @1(it) and... @n(it)", e1, e2, ... en);
Run Code Online (Sandbox Code Playgroud)
谢谢
如果我遇到特定错误并在这种情况下返回一个对象,我需要抛出异常.
所以我想做这样的事情:
if(error)
return obj;
throw new FaultException(string.Format("Error found with ID={0}", ID))
Run Code Online (Sandbox Code Playgroud)
这显然不会起作用,因为return会阻止抛出异常.
任何人都可以建议什么是实现这一目标的最佳途径.我可以以某种方式传递异常中的对象吗?
谢谢
是否可以将表名作为输入参数传递给存储过程?
例如:
create procedure test
@tablename char(10)
as
begin
select * from @tablename
end
go
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用.那么,如果我想将表名传递给存储过程,最好的方法是什么?
非常感谢
我想在我的实体模型中找到实体的所有外键.
我使用以下内容来获取实体的所有属性列表:
var workspace = _entities.MetadataWorkspace;
var entityType = workspace.GetItems<EntityType>(DataSpace.CSpace).FirstOrDefault(e => e.Name == tablename);
var keyNames = entityType.Members.Select(k => k.Name);
Run Code Online (Sandbox Code Playgroud)
有没有办法只找到那些具有外键关联的属性?还有与之关联的参考实体中的属性?
我正在使用EF更新数据库表.
它是连接模式下的一个简单场景.
我得到了我想要更新的行
var order = from o in Orders
where o.ID = 1
select o;
Run Code Online (Sandbox Code Playgroud)
然后我将记录更新为:
order.FirstName = "First";
order.LastName = "Last";
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
它工作正常.EF检查字段是否已更改,并仅在其为新值时更新字段.我在我的SQL服务器上启用了CDC,以检查如果值没有更改,EF不会重写到数据库.
现在我想把这个检查放在我的代码中以获得额外的逻辑,即我希望EF告诉我何时更新记录,何时不记录(因为值没有改变).任何人都可以告诉我是否有办法?
我不想手动检查每个字段,因为我有很多要比较的字段.
谢谢
我正在编写类似于以下内容的LINQ查询:
var test = from o in dbcontext.Orders.AsEnumerable()
where o.ID==1
select new Order
{
Name = GetName(o.ID)
};
Run Code Online (Sandbox Code Playgroud)
为了在LINQ查询中调用外部函数,我AsEnumerable()在查询中使用.
我理解通常在ToList()调用枚举函数之前不会执行查询.但在这里,我呼吁枚举中查询.
任何人都可以告诉我,这样使用是否被认为是不好的做法AsEnumerable()?与创建查询ToList() 后调用相比,它会在性能上受损吗?
我在Azure上托管了一个网站.我使用Trace.Error将我的所有错误日志输出到文件系统.但是,当我在Azure网站上启用应用程序日志记录时,它仅保持启用12小时.这篇文章也证实了这一点:http://www.hanselman.com/blog/StreamingDiagnosticsTraceLoggingFromTheAzureCommandLinePlusGlimpse.aspx
现在我想继续无限期地存储错误日志(即直到我的网站上线).我不确定我是否错过了这一点.如何永久保持日志记录?
我在我的LINQ查询中使用EntityFunctions类:
var a = dbContext.Where(x=>EntityFunctions.DiffMinutes(dateA,dateB)<1)
Run Code Online (Sandbox Code Playgroud)
但是我想要差异的绝对值,所以我不必担心哪个日期更大.
任何人都可以建议如何做到这一点.