Access DynamicModel.Query using dot notation or index

I am using Massive micro-orm and SQL Server 2008R2 with .NET framework 4.0.

// This is my model public class sUser : DynamicModel { public sUser() : base(Model.strConnection, "Users", "UserId") { } } 

and another class ...

  using System; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Xml; using System.Dynamic; using System.Collections.Generic; using Massive; public class Test { public dynamic GetUser(string uName) { dynamic table = new sUser(); var objUser = table.FindBy(UserName: uName); //Tried following... //var objUser = new sUser().All().Where(u => u.UserName.ToString() == uName).FirstOrDefault(); //var objUser = new sUser().All().Where(u => u.UserName.ToString().Equals(uName)).FirstOrDefault(); return objUser; } public void GetSomething(dynamic testObj, string user) { dynamic User = GetUser(user); //testObj.CUser = User["FirstName"] + ' ' + User["LastName"]; //Would like to access User object like //User.FirstName or User["FirstName"] //And not like this... foreach (var item in User) { testObj.CUser = item.FirstName + ' ' + item.LastName; } } } 

I would like to access a dynamic user object, such as User.FirstName or User ["FirstName"]. Perhaps, or am I missing something?

Any input is appreciated.

Thanks.

+4
source share
1 answer

You will need to use the First method instead of findby

You can access the following properties with them:

 testObj.CUser = User.FirstName + User.LastName; 

Full application of the working console:

  class Program { static void Main(string[] args) { dynamic testObj = new ExpandoObject(); test t = new test(); t.GetSomething(testObj, "TestUserName"); Console.WriteLine(testObj.CUser); Console.ReadLine(); } } public class test { // This is my model public class sUser : DynamicModel { public sUser() : base("test", "Users", "UserId") { } } public void GetSomething(dynamic testObj, string user) { dynamic User = GetUser(user); testObj.CUser = User.FirstName + User.LastName; } public dynamic GetUser(string uName) { dynamic table = new sUser(); var objUser = table.First(UserName: uName); return objUser; } } 
+1
source

Source: https://habr.com/ru/post/1446325/


All Articles