在 Entity Framework 中按字符串获取实体
Get entities by string in Entity Framework
我正在尝试使用 Entity Framework 执行一些动态代码。我有一个模型 (Model1) 和一个 table(Test1),很简单。我想要做的是使用 table 的名称以编程方式访问模型 Test1,以便在不同的任务中使用它。我在 google 中寻找,我找到了 Finding entities by key in entity framework 但它不起作用,或者我不知道...
当我 运行 这段代码在尝试设置 entityProperty 时中断
Model1Container m = new Model1Container();
PropertyInfo entityProperty = m.GetType().GetProperties().Where(t => t.Name == "Test1").Single();
var baseQuery = (IQueryable<IIdentity>)entityProperty.GetValue(m, null);
抱歉解释。
有什么想法吗?
您创建一个具有字符串名称的对象并设置其属性:
public class Test
{
//All my classes have these properties
//You can set up an interface and in the method you can set entity to an interface type
//You can even put these interfaces on edmx generated entities
//
public string AString { get; set; }
public DateTime ADate { get; set; }
}
public class HomeController : Controller
{
public ActionResult IndexWhosebug101()
{
Assembly assembly = Assembly.Load("Testy20161006");
Type t = assembly.GetType("Testy20161006.Controllers." + "Test");
Object entity = (Object)Activator.CreateInstance(t);
PropertyInfo entityProperty = t.GetProperty("AString");
PropertyInfo entityPropertyTwo = t.GetProperty("ADate");
entityProperty.SetValue(entity, Convert.ChangeType("ap", entityProperty.PropertyType), null);
entityPropertyTwo.SetValue(entity, Convert.ChangeType(DateTime.Now, entityPropertyTwo.PropertyType), null);
我正在尝试使用 Entity Framework 执行一些动态代码。我有一个模型 (Model1) 和一个 table(Test1),很简单。我想要做的是使用 table 的名称以编程方式访问模型 Test1,以便在不同的任务中使用它。我在 google 中寻找,我找到了 Finding entities by key in entity framework 但它不起作用,或者我不知道...
当我 运行 这段代码在尝试设置 entityProperty 时中断
Model1Container m = new Model1Container();
PropertyInfo entityProperty = m.GetType().GetProperties().Where(t => t.Name == "Test1").Single();
var baseQuery = (IQueryable<IIdentity>)entityProperty.GetValue(m, null);
抱歉解释。
有什么想法吗?
您创建一个具有字符串名称的对象并设置其属性:
public class Test
{
//All my classes have these properties
//You can set up an interface and in the method you can set entity to an interface type
//You can even put these interfaces on edmx generated entities
//
public string AString { get; set; }
public DateTime ADate { get; set; }
}
public class HomeController : Controller
{
public ActionResult IndexWhosebug101()
{
Assembly assembly = Assembly.Load("Testy20161006");
Type t = assembly.GetType("Testy20161006.Controllers." + "Test");
Object entity = (Object)Activator.CreateInstance(t);
PropertyInfo entityProperty = t.GetProperty("AString");
PropertyInfo entityPropertyTwo = t.GetProperty("ADate");
entityProperty.SetValue(entity, Convert.ChangeType("ap", entityProperty.PropertyType), null);
entityPropertyTwo.SetValue(entity, Convert.ChangeType(DateTime.Now, entityPropertyTwo.PropertyType), null);