C# 如何使用linq查询sysobjects?

C# 如何使用linq查询sysobjects?,c#,.net,linq,entity-framework,entity-framework-5,C#,.net,Linq,Entity Framework,Entity Framework 5,LINQ与下面的SQL语句等价于什么?我使用的是实体框架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; }

LINQ与下面的SQL语句等价于什么?我使用的是实体框架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; }
}
映射文件如下(我使用代码优先的方法,因为您没有说明如何使用EF)

公共类SysObjectMap:EntityTypeConfiguration
{
HasKey(p=>p.SomeUniqueId);
属性(p=>p.Name).IsRequired();
ToTable(“SysObjects”);//如果存在模式,则将其作为第二个参数传递
属性(p=>p.Name);
}
您需要在上下文类中注册此映射。当然,如果您使用的是数据库优先的方法,上述方法可能会让您感到困惑,因为VisualStudio生成的代码会有很大的不同


更新:对于数据库优先的方法,我确信您将能够看到系统表。当然,您始终可以打开生成的EDMX和实现类,并自己添加映射。另一种方法是创建一个围绕系统对象的视图。然后使用模型设计器添加视图。

My bad,首先是数据库。
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");
}