0

次の SQL ステートメントに相当する LINQ は何ですか? 私はエンティティ フレームワーク 5、データベースを最初に使用しています。

SELECT Name 
FROM SysObjects 
WHERE xtype='U' AND Name LIKE 'D[_]%' 
ORDER BY Name ASC
4

1 に答える 1

2

これは LINQ で行うことができますが、SysObject をクラスにマップする場合に限ります。そうしないと、他の方法では不可能です。

例えば:

public class SysObject
{
    public int SomeUniqueId { get; set; }
    public string Name { get; set; }
}

マッピング ファイルは次のようになります (EF の使用方法について述べていないため、Code First アプローチを使用しています)

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 によって生成されるコードが大幅に異なるため、上記の方法では混乱する可能性があります。

更新: Database-First アプローチの場合、システム テーブルを表示できると確信しています。もちろん、生成された EDMX と実装クラスをいつでも開いて、自分でマッピングを追加できます。もう 1 つの方法は、システム オブジェクトをラップするビューを作成することです。次に、モデル デザイナーを使用してビューを追加します。

于 2013-03-01T22:53:07.137 に答える