0

私はまだ C# と SQL を書く初心者で、誰かがこの基本的な質問を手伝ってくれるかどうか疑問に思っていました。私はインターネット全体を見てきましたが、まだ立ち往生しています。

データベースにアクセスするための WCF サービスを作成しようとしています。必要なメソッドは 1 つだけです。

public PathDto GetPath(string src, string trg)
    {
        using (var context = new PathsEntities())
        {
            var p = (
                    from a
                    in context.src
                    where a.Target = trg
                    select a).Distance, Path;
        }
    }

ここで、パラメーターsrcはテーブル名で、文字列trgはエンティティの主キーです。

Visual Studio からエラーが表示されます: ...pathsService does not contain a definition for src変数に含まれる文字列ではなく、テーブル "src" を検索しようとしているためです。

ルックアップ ステートメントでパラメーターを使用するにはどうすればよいですか?

4

1 に答える 1

1

DbContext EF5.0 のものを使用していると仮定します

public PathDto GetPath(string tableType, string id)
{
    using (var context = new PathsEntities())
    {
            var type = Type.GetType(tableType);
            var p = context.Set(type).Find(id);
            return (PathDto)p;
    }
}

EF 5.0 を使用しておらず、EF 4.0 しか入手しておらず、ObjectContext を使用しているようです。これを試してみてください...私はEF 4.0を実際に使用していないので、うまくいくかどうかわかりません。または、EF 5.0 をダウンロードします。

public PathDto GetPath(string tableType, string id)
{
    using (var context = new PathsEntities())
    {
            var type = Type.GetType(tableType);
            var p = context.GetObjectByKey(new EntityKey(tableType, "id", id));
            return (PathDto)p;
    }
}
于 2013-03-28T03:34:36.737 に答える