我的問題是如何讓一個函數可以將字符串轉換爲類並執行linq查詢。 這是它應該是如何工作的一個簡單的例子:如何將字符串轉換爲ClassName並執行Linq查詢
// DBContext
DataView _db = new DataView();
public static void ...(){
Create("somedesc", "someabbr", "vwFunctieScheidingMetacom", "someiconstring");
}
// the function
public static void Create(string description, string abbrevition, string cn, string icon)
{
// cn is classname
// convert cn into a class
var class = Convert.Class(cn);
// Execute Linq query
_db.class.ToList<dynamic>();
}
這是我的DbContext:
public partial class DataView : DbContext
{
public DataView()
: base("name=DataView")
{
}
public virtual DbSet<vwFunctieScheidingMetacom> vwFunctieScheidingMetacom { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
現在只有一個模型加載,但在未來會有更多。這些模型都會有所不同,我希望儘可能動態化。
我試圖使用反射,但它沒有工作,我不知道從哪裏開始。 任何幫助,將不勝感激。
更新
這是一個需要動態地使用類的一個:
namespace Portal.ModelViews
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
[Table("vwFunctieScheidingMetacom")]
public partial class vwFunctieScheidingMetacom
{
public int? PermissiesID1 { get; set; }
public int? PermissiesID2 { get; set; }
[StringLength(255)]
public string PermName1 { get; set; }
[StringLength(255)]
public string PermName2 { get; set; }
public string Omschrijving { get; set; }
public int? Prioriteit { get; set; }
[StringLength(50)]
public string Login { get; set; }
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FunctieScheidingID { get; set; }
[Key]
[Column(Order = 1)]
[StringLength(60)]
[DisplayName("ID")]
public string ID { get; set; }
}
}
應用程序應該如何創建一個類的屬性,方法等字符串?我知道一些方法,您可以使用這些方法創建一個已經從anonymus類型指定的類的對象的實例(如果anonymus類型的屬性和指定的類的屬性相對應),但是會從字符串中創建一個類本身?這是我很樂意看到解釋;) –
你想要的字符串是現有類的名稱來獲取?可能需要ExecuteQuery http://stackoverflow.com/questions/11472059/dynamic-table-name-in-entity-framework-linq或反射https://social.msdn.microsoft.com/Forums/en-US/d54815dc- 4233-4697-9859-17356eb92f36/could-i-access-object-through-object-namestring-in-ef?forum = adonetefx#dbe631df-8836-40bd-bac8-894389249381 –
@SteveGreene是的,但我要在不同情況下使用它,而不僅僅是查詢。我該如何利用這個問題的思考? – Jim