解释它的用法。使用ObjectSet<> .Where()

时间:2015-03-15 16:59:05

标签: c# entity-framework entity-framework-6 where-clause objectset

我有以下代码正常工作:

ObjectContext octx = new ObjectContext("name=PublisherModelContainer");
        ObjectSet<Author> authorSet = octx.CreateObjectSet<Author>();
        ObjectQuery<Author> q = authorSet.Where("it.FirstName == @FirstName", new ObjectParameter("FirstName", "Isaak"));
        Author a = q.FirstOrDefault();
        if (a == null) 
        { 
            Console.WriteLine("Author not found");
            return;
        }
        Console.WriteLine("{0} {1}", a.FirstName, a.LastName);

在呼叫&#39; Where&#39;方法,FirstName属性通过&#34; 引用.FirstName&#34;。这是什么意思?我尝试过使用其他别名,例如&#34;的 .FirstName&#34;但失败的是异常消息&#39; a.FirstName&#39;无法在当前范围或上下文中解决。

即使在此处的Microsoft示例(https://msdn.microsoft.com/en-us/library/bb338811%28v=vs.110%29.aspx), .ProductID也不会像t.ProductID那样使用。

究竟是什么&#34;它&#34;?是吗&#34;它&#34;有特殊意义吗?

1 个答案:

答案 0 :(得分:0)

It就是您可以参考您当前正在使用的套件的方式。与C#类中的this相同。但这是基于EF生成的查询实现的。 请考虑以下SQL脚本。

SELECT Col1, Col2, Col3 FROM Table AS It
WHERE It.Col1 = @param1

以下链接包含更详细的解释http://www.w3schools.com/sql/sql_alias.asp