我找不到关于这些运营商的好文档。有人可以提供一些使用示例并解释他们的工作吗?
答案 0 :(得分:0)
实体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();
}