Beispielcode für:
Referenzierte Assemblies: eBiss.Api.dll und Pranke.Orm.TypeLib.dll
using eBiss.Api; using eBiss.Api.Data; using Pranke.Attributes; using System.Linq; using Pranke.Orm.Interfaces; using System.Collections; namespace Map { [OrmClass(tableName: "my_country_codes")] public abstract class CountryCodes { [Key] public abstract string CountryCode { get; set; } public abstract string Description { get; set; } } /// <summary> /// /// </summary> public class Functions : IMapFunctionExtender, ILoggingObject, IApplicationConsumer, ISystemVariableConsumer { private static string Db_Connection_Variable = "Db.CountryCodes.Connection"; public IApplication Application { get; set; } public ILogContext Log { get; set; } public IDictionary Variables { get; set; } /// <summary> /// Select from my_country_codes using local DB /// </summary> /// <param name="code"></param> /// <returns></returns> /// Sample Call: Map.Functions.CountryCode('DE') [eBiss.Api.MappingFunction] public object CountryCode(string code) { CountryCodes foundItem = Application.Entities.DbSet<CountryCodes>().Where(c => c.CountryCode == code).FirstOrDefault(); return foundItem?.Description; } /// <summary> /// Select from my_country_codes using from diffrent DB, in this sample from MS-SQLServer DB eBiss3Demo /// </summary> /// <param name="code"></param> /// <returns></returns> /// Sample Call: Map.Functions.CountryCodeFromDb('DE') [eBiss.Api.MappingFunction] public object CountryCodeFromDb(string code) { Pranke.Orm.Interfaces.IEntities entities = Pranke.Orm.EntitiesBase.Connect(Pranke.Orm.DatabaseType.MsSql, GetDbConnection()); IQueryResult<CountryCodes> res = entities.DbSet<CountryCodes>(); res.Query.Timeout = 100; CountryCodes foundItem = res.Where(c => c.CountryCode == code).FirstOrDefault(); return foundItem?.Description; } /// <summary> /// the Connection string has the same format as the one in the eBiss.Config under 'add key="DbConnectionString"...', /// e.g. with „…;uid=<user>;pwd=<password>“ and not "User=<user>; Password=<password>" /// </summary> /// <returns></returns> /// <exception cref="System.ApplicationException"></exception> private string GetDbConnection() { if (Variables.Contains(Db_Connection_Variable) && string.IsNullOrWhiteSpace(Variables[Db_Connection_Variable].ToString()) == false) { return Variables[Db_Connection_Variable].ToString(); } else { throw new System.ApplicationException($"Missing Variable {Db_Connection_Variable}!"); } } } }