0

我仍然是编写 C# 和 SQL 的初学者,想知道是否有人可以帮助我解决这个基本问题。我已经浏览了整个互联网,但仍然卡住了。

我正在尝试编写 WCF 服务来访问我的数据库。我只需要一种方法:

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 回答