Linq技巧4——怎么在.NET 3.5 SP1中伪造一个外键属性
摘要:在.NET 4.0 的EF 中,增加了FK Associations的功能,但是在.NET 3.5 SP1 中,仅仅支持独立的关联,这意味着FK 栏位不能作为实体的属性来使用,也就是说在使用的时候,必须创建它们之间的关系,通过引用到其他实体。 举个例子,不像Linq to SQL, 不能进行如下操作, product.CategoryID = 2; 因为没有“CategoryID” 属性在Product 实体中。你必须用如下方式替代,product.Category = ctx.Categories.First(c => c.ID == 2); 这样你需要使用到Category的实...
阅读全文
posted @
2013-11-11 15:48
欣静赏悦
阅读(442)
推荐(0)
Linq技巧3——何时及怎么使用预先加载
摘要:通常情况在你的应用程序中,一旦你要查询完数据的的时候,你知道使用实体来做什么。 假如你打印一份订单给顾客,你知道不包括组成订单的Items和Products信息,打印的信息是不完整的,所以查询时也需要加载这些信息。 这类情况,查询时使用预先加载是很有用的。如果你需要额外的信息、实体,你可能需要提前加载这些实体数据,这会节省你的查询次数。 正好与一些错误的观点相反,使用EF进行预先加载是可行的,而且比较方便,你可以简单地使用Include()来写自己的查询,像下面的方式: var reprint = (from order in ctx.Orders.Include("Items.P.
阅读全文
posted @
2013-10-29 14:40
欣静赏悦
阅读(631)
推荐(0)
Linq技巧2——限制返回数据中的继承类型
摘要:假如有像下面这样的一个模型, 怎样在查询时仅仅需要的Cars呢? 这样的几个继承关系的实体中,查询时Where 条件可以加入OfType(),你可以这样来写: var onlyCars = from car in ctx.Vehicles.OfType() select car; 这样查询正常工作,很好!这样限制了Cars 类型,偶尔带出SportsCars and SUVs 这些子类型。 怎样在查询时仅仅需要的Cars,且不包括那些子类呢? 假如你预期仅仅查询一辆简单的家庭用车,这以为着你不想在查询中看见SportsCars and ...
阅读全文
posted @
2013-10-26 13:21
欣静赏悦
阅读(549)
推荐(0)
Linq技巧1——关联实体查询排序
摘要:假如想查询拖欠按揭超过30天的银行帐号,同时查询出他们的单据,并且需要按照单据日期进行排序,这样可以首先看到最近的单据,方便找出问题。 大多数人都知道EF可以使用Include()热加载关系实体,例如这样: var lateCustomers = from c in ctx.Customers.Include("Orders") where c.IsMoreThan30DaysInArrears select c; 但是很不幸,这样找到的每个客户的单据顺序都是随机的。 那么我们怎么来对他们进行排序呢,严...
阅读全文
posted @
2013-10-25 21:39
欣静赏悦
阅读(1579)
推荐(0)
SPMetal 默认代码生成规则
摘要:本主题指定 SPMetal 在生成代码时遵循的默认规则。您可以通过创建 SPMetal 参数文件并向 SPMetal 命令行添加 /parameters 选项来更改此行为的一部分。有关这种类型的自定义操作的详细信息,请参阅 用参数 XML 文件替代 SPMetal 默认值 和 SPMetal。在以下各节中,无法替代用星号 (*) 标记的规则。可以 替代的任何规则的后面都有替代它的 XML 标记指示。表示网站的类*生成一个继承自 DataContext 类的类,以在整体上表示网站数据。*该类标记为 partial(在 Microsoft Visual Basic 中为 Partial)。该类标记
阅读全文
posted @
2012-02-16 23:29
欣静赏悦
阅读(331)
推荐(0)
Linq to SharePoint中一个列表包含多个Content Type问题
摘要:在Parameters.xml文件中指定包含的内容类型:<List Name="SingleProblem" Member="SingleItems"> <ContentType Name="项目" class="SingleItem"/> <ContentType Name="TestCT" class="TestItem"/> </List>在内容类型XML中添加字段ContentType:<Column Name=&
阅读全文
posted @
2012-01-30 22:57
欣静赏悦
阅读(245)
推荐(0)
Update list item using Linq to SharePoint
摘要:1. Update// Set the property to a new value.foreach (TeamMember teamMember in teamSite.TeamMembers){ teamMember.TopTask = "Fiscal Planning";}// Write changes to the content database.teamSite.SubmitChanges();2.Resolve Conflictforeach (TeamMember teamMember in teamSite.TeamMembers){ teamMemb
阅读全文
posted @
2012-01-12 14:47
欣静赏悦
阅读(276)
推荐(0)
LINQ To SharePint - 缺失Created By/Modified By 字段
摘要:微软你做事能细心点吗?使用Linq to SharePoint,结果产生出来的实体类,居然找不到创建者、修改者这样的字段。要么说默认自带的这些字段都找不到就算了,可是版本、路径这些垃圾字段倒显示出来。只有再琢磨一番。找到Item 这个类,添加以下代码string _CreatedBy;[Microsoft.SharePoint.Linq.ColumnAttribute(Name = "Author", Storage = "_CreatedBy", ReadOnly = true, FieldType = "User", IsLook
阅读全文
posted @
2011-12-23 17:19
欣静赏悦
阅读(242)
推荐(0)
LINQ To SharePint - 解决中文类名问题
摘要:使用SPMetal 生成的Entities文件,包含中文列表名称,或者包含空格,使用起来很不方便。找了一番,找到了解决方法。SPMetal 有个Parameters 参数,可以指定重写的XML文件。在这个文件中,可以限定要查找的List、ContentType、Column,过滤排出掉不需要使用的。同时在这个XML 文件中可以给特殊的List名称指定别名。例:<Web AccessModifier="Public" Class="EpasContext" xmlns:xsi="http://www.w3.org/2001/XMLSchem
阅读全文
posted @
2011-12-23 17:10
欣静赏悦
阅读(480)
推荐(0)
SharePoint 2010中使用LINQ To SharePint
摘要:SharePoint 2010中使用LINQ To SharePint 是很方便的,让我们能够使用更加通用的LINQ来替代SharePoint 中传统的CAML查询.1. 添加引用添加对Microsoft.SharePoint.LINQ.dll的引用,它在路径Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\下。2. 生成LINQ to SharePoint Proxy类,通过它来访问SharePoint站点中的List使用spmetal.exe工具,它能根据SharePoint站点中的List
阅读全文
posted @
2011-12-14 10:46
欣静赏悦
阅读(262)
推荐(0)
LINQ之Select各种操作
摘要:这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学习LINQ to SQL,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用。本篇详细说明一下Select和Count/Sum/Min/Max/Avg。Select/Distinct操作符适用场景:o(∩_∩)o… 查询呗。说明
阅读全文
posted @
2011-01-28 13:53
欣静赏悦
阅读(796)
推荐(0)