c # установить значения столбца DataContext, не вводя его строго - PullRequest
0 голосов
/ 19 сентября 2011
        //Instead of the this 
        var tableX = db.PRODUCT; //db is the DataContext
        //I can do the below (Thanks to /1013062/poluchit-dannye-tablitsy-iz-imeni-tablitsy-v-linq-datacontext
        string tablename = "PRODUCT";
        var table = (ITable)db.GetType().GetProperty(tablename).GetValue(db, null);

        //But instead of this
        PRODUCT _Product = new PRODUCT();
        _Product.PRD_CODE = "code1";
        _Product.PRD_DESC = "description1";
        table.InsertOnSubmit(_Product);
        db.SubmitChanges();

        //How can I do something like this
        string tablename = "PRODUCT";
        var table = (ITable)db.GetType().GetProperty(tablename).GetValue(db, null);
        string lsColumnPrdCode = "PRD_CODE";
        string lsColumnPrdDesc = "PRD_DESC";
        table _tableInstance = new table();
        _tableInstance[lsColumnPrdCode] = "code1";
        _tableInstance[lsColumnPrdDesc] = "description1";
        _tableInstance.InsertOnSubmit(_tableInstance);
        db.SubmitChanges();

То есть можно установить значения столбца datacontext, не вводя его строго?

1 Ответ

1 голос
/ 19 сентября 2011

Конечно, вы можете использовать отражение, чтобы делать такие вещи. Может быть, что-то похожее на этот код:

Type productType = Type.GetType("PRODUCT");
var product = Activator.CreateInstance(productType);
productType.GetProperty("PRD_CODE").SetValue(product, "code1");
productType.GetProperty("PRD_DESC").SetValue(product, "description1");

Type tableType = table.GetType();
tableType.GetMethod("InsertOnSubmit").Invoke(table, new object[] {product});

Но почему ты хочешь это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...