如何按名称访问和查询DbContext的DbSet(传递带有实体名称或全名的字符串)
类似的东西(但这不起作用)
string myTypeName= "mycustomtype"; //or "mynamespace1.mynamespace2.mycustomtype"
Type myType = Type.GetType(myTypeName);
var dbset = db.Set(myType);
// i can't query dbset
//i should do something like this (but i don't know how to do it)
var result = ((IEnumerable<myType>)db.Set(myType)).toList();
答案 0 :(得分:0)
@alex,
我花了很多时间在这上面。我找不到像问题中的元代码一样简单的方法。 欢迎接受以下改进。
我的需求可能与你的不一样,所以让我解释一下:
OnDrawerClosed
......将适用于:
ctx.SomeModels.Add(myClass);
如果这符合您的情况,这可能会有所帮助。
注意:
- 我已经删除了所有的日志记录(使用NLog),这增加了很多调试,但这使得阅读更加困难
- 如果你制作一些断点并查看值和&amp;选择,你会看到一些我必须纠正的事情
- 问题分为两部分:
1.从一个简单的版本中查找程序集的类名称
2.使用该计算机友好名称创建一个使DbContext不会抱怨的类:
ctx.SaveChanges();