5

我找不到关于这些运算符的好文档。有人可以提供一些使用示例并解释它们的作用吗?

4

1 回答 1

-1

实体 SQL 的 CREATEREF 参考: http: //msdn.microsoft.com/en-us/library/bb386880(v=VS.90)

它用于“制造对实体集中实体的引用”。您还可以从链接中找到 REF 和 DEREF 的参考资料。

对于 VS 2010,参考是:http: //msdn.microsoft.com/en-us/library/bb386880(v=VS.100)

来自 MSDN 的示例:

在下面的示例中,Orders 和 BadOrders 都是 Order 类型的实体集,并且假定 Id 是 Order 的单键属性。该示例说明了我们如何在 BadOrders 中生成对实体的引用。请注意,引用可能是悬空的。也就是说,引用可能实际上并不识别特定实体。在这些情况下,对该引用的 DEREF 操作返回 null。

 select CreateRef(LOB.BadOrders, row(o.Id)) 
from LOB.Orders as o 

使用实体框架 SQL 的示例代码:

using (EntityConnection conn =
    new EntityConnection("name=AdventureWorksEntities"))
{
    conn.Open();
    // Create a query that takes two parameters.
    string esqlQuery =
        @"SELECT VALUE Contact FROM AdventureWorksEntities.Contact 
                    AS Contact WHERE Contact.LastName = @ln AND
                    Contact.FirstName = @fn";

try
{
    using (EntityCommand cmd = new EntityCommand(esqlQuery, conn))
    {
        // Create two parameters and add them to 
        // the EntityCommand's Parameters collection 
        EntityParameter param1 = new EntityParameter();
        param1.ParameterName = "ln";
        param1.Value = "Adams";
        EntityParameter param2 = new EntityParameter();
        param2.ParameterName = "fn";
        param2.Value = "Frances";

        cmd.Parameters.Add(param1);
        cmd.Parameters.Add(param2);

        using (DbDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
        {
            // Iterate through the collection of Contact items.
            while (rdr.Read())
            {
                Console.WriteLine(rdr["FirstName"]);
                Console.WriteLine(rdr["LastName"]);
            }
        }
    }
}
catch (EntityException ex)
{
    Console.WriteLine(ex.ToString());
}
conn.Close();
}
于 2011-10-01T07:28:55.330 回答