使用实体框架检索用逗号分隔的外键表数据

时间:2018-08-10 04:36:48

标签: c# entity-framework

我有一列将用户ID保存为逗号分隔的值

'32,12,64' 

在可能的情况下,最好使用实体框架作为[NotMapped]的子类中的Task属性来获取相关表数据的最佳方法是,因为有一个触发器来维护将用户ID移到子表的审计历史记录不可能。请参见下面的示例代码

public class Task
{
    public int Id { get;set; }
    public string UserIds { get;set; }
    public string UserNames { get;set; }
}

var task = GetCurrentTask()

foreach(var userId in task.UserIds.Split(','))
{
   task.UserNames += GetUserNameFor(userId);
}

1 个答案:

答案 0 :(得分:0)

在这里,UserIDs字段为String,因此,如果您具有此字段的值,则可以使用LINQ查询。

var userIDs = "32,12,64";
var result = Usertable.retrieve(x=> x.UserID.Contains(userIDs)).ToList();

尝试这种方式。您可以从“用户”表中找到所有数据,并在结果中显示“所有字段”值。