与以下 SQL 语句等效的 LINQ 是什么?我正在使用实体框架 5,首先是数据库。
SELECT Name
FROM SysObjects
WHERE xtype='U' AND Name LIKE 'D[_]%'
ORDER BY Name ASC
与以下 SQL 语句等效的 LINQ 是什么?我正在使用实体框架 5,首先是数据库。
SELECT Name
FROM SysObjects
WHERE xtype='U' AND Name LIKE 'D[_]%'
ORDER BY Name ASC
您可以使用 LINQ 执行此操作,但前提是您将 SysObjects 映射到您的类,否则任何其他方式都不可能。
例如:
public class SysObject
{
public int SomeUniqueId { get; set; }
public string Name { get; set; }
}
映射文件将是这样的(我使用 Code First 方法,因为您没有说明如何使用 EF)
public class SysObjectMap : EntityTypeConfiguration<SysObject>
{
HasKey(p => p.SomeUniqueId);
Property(p => p.Name).IsRequired();
ToTable("SysObjects"); // If there is Schema pass it as a 2nd argument
Property(p => p.Name).HasColumnName("name");
}
您需要在上下文类中注册此映射。当然,如果您使用的是 Database First 方法,上述方法可能会让您感到困惑,因为 Visual Studio 生成的代码会大不相同。
更新:在数据库优先方法的情况下,我相信您将能够看到系统表。当然,您可以随时打开生成的 EDMX 和实现类并自己添加映射。另一种方法是创建一个包裹 SysObjects 的视图。然后使用模型设计器添加视图。