C# C ASP.net中链接多个数组的最佳方法
我有3个来自Web服务的数组C# C ASP.net中链接多个数组的最佳方法,c#,asp.net-mvc,.net-3.5,c#-3.0,C#,Asp.net Mvc,.net 3.5,C# 3.0,我有3个来自Web服务的数组 Countries : Consists of Key - Value Regions : Consists of Id - Name - CountryCode(fk: countries) Areas : Consists of Id - Name - CountryCode - RegionID(fk: regions) fk只是显示它是一个信息位,外键,将它与前一个数组相关联 我一直坚持认为最好的方法是将这些链接在一起,LINQ的加入看起来很头
Countries : Consists of Key - Value
Regions : Consists of Id - Name - CountryCode(fk: countries)
Areas : Consists of Id - Name - CountryCode - RegionID(fk: regions)
fk只是显示它是一个信息位,外键,将它与前一个数组相关联
我一直坚持认为最好的方法是将这些链接在一起,LINQ的加入看起来很头痛,我也不确定哈希集
有什么想法吗
***附加;*这将作为应用程序存储在应用程序状态中,因为它需要每天刷新一次。我认为,只需每天刷新一次应用程序,比存储在数据库中并根据日期戳进行更新更快。Linq连接真的没有那么糟糕,语法一开始有点滑稽,但是你很快就习惯了。我很好奇为什么你会说LINQ连接看起来很头痛:它正是LINQ to对象用来查询内存中的对象并提供这些对象之间的连接等服务的 LINQ的一个潜在缺点是性能开销,但老实说,它还没有成为我的主要问题 语法仅来自source1中的obj1,在选择{obj1.prop,obj2.prop}时连接source2中的obj2 这在很大程度上反映了SQL,这就是我们的意图 要使用您的示例:
from a in Areas
join r in Regions
on a.RegionID equals r.Id
join c in Countries
on r.CountryCode equals c.Key
select new {c.Value, r.Name, a.Name, a.Id };
你不能把它们倒进垃圾桶吗?它是一个可以预定义的集合
没有像c3.5这样的动物应该是c3.0。net3.5验证检查无法缓存该属性以供以后使用,您需要定义一个包含这些属性的展平类型,并将LINQ包装在…ToList中,这样它就不会在每次请求时都延迟执行。Jason在避免相当轻微的性能损失方面是正确的。使用new{}在此处创建的匿名类型工作得很好,坦率地说,在浏览器窗口中疯狂键入时,我很少使用自定义类:-P@Godeke当前位置我认为==应该相等吗?var commonRAR=从a中的a加入a.RegionID等于r.Id在d中加入c在r.CountryCode等于c.Key选择new{c.Value,r.Name,a.Name,a.Id};开始-是的,我习惯使用LLBLGen,它可以让我通过过载来摆脱这种情况。在身体里纠正。
private void CreateRelation()
{
// Get the DataColumn objects from two DataTable objects
// in a DataSet. Code to get the DataSet not shown here.
DataColumn parentColumn =
DataSet1.Tables["Customers"].Columns["CustID"];
DataColumn childColumn =
DataSet1.Tables["Orders"].Columns["CustID"];
// Create DataRelation.
DataRelation relCustOrder;
relCustOrder = new DataRelation("CustomersOrders",
parentColumn, childColumn);
// Add the relation to the DataSet.
DataSet1.Relations.Add(relCustOrder);
}