C# C将Dapper POCO和Dapper.Fluent EntityMap作为参数传递
我目前正试图通过dapper安装MySQL数据库 我已为dapper宣布POCO:C# C将Dapper POCO和Dapper.Fluent EntityMap作为参数传递,c#,mysql,dapper,C#,Mysql,Dapper,我目前正试图通过dapper安装MySQL数据库 我已为dapper宣布POCO: public class DevicesOnTesterDbTable { public string UUID { get; set; } public string DeviceType { get; set; } public string DeviceAddedAt { get; set; } public uint Address { get; set; } } 我还
public class DevicesOnTesterDbTable
{
public string UUID { get; set; }
public string DeviceType { get; set; }
public string DeviceAddedAt { get; set; }
public uint Address { get; set; }
}
我还有那张桌子的Dapper.Fluent EntityMap:
public class DevicesOnTesterDbTableMap : EntityMap<DevicesOnTesterDbTable>
{
public DevicesOnTesterDbTableMap()
{
Map(p => p.UUID).ToColumn("devices_on_tester_uuid");
Map(p => p.DeviceType).ToColumn("devices_on_tester_type");
Map(p => p.DeviceAddedAt).ToColumn("devices_on_tester_add_at");
Map(p => p.Address).ToColumn("devices_on_tester_address");
}
}
我的数据库大约有十个表,所以我有十对POCO和EntityMap类。因此,在阅读的情况下,我必须对每个表执行类似的操作:
public static List<DevicesOnTesterDbTable> ReadDevices(string server)
{
FluentMapper.Initialize(config =>
{
config.AddMap(new DevicesOnTesterDbTableMap());
});
try
{
using (var mySqlConnection = OpenConnection(server))
{
mySqlConnection.Open();
return mySqlConnection.Query<DevicesOnTesterDbTable>("Select * from power_source_calibration").ToList();
}
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
现在有没有一种方法可以将这些对传递到其他一些方法中,这些方法将执行诸如读\写\更新等常见操作?或者有更好的办法 有更好的方法;实际上你做错了 您不需要调用FluentMapper。在每个方法中初始化,如ReadDevices。理想情况下,所有实体的所有映射只应在应用程序启动时发生一次
FluentMapper.Initialize(config =>
{
config.AddMap(new InvoiceMap());
});
以下资料来自:
在应用程序开始时初始化映射
FluentMapper.Initialize(config =>
{
config.AddMap(new InvoiceMap());
});
另外,请参阅显示如何在应用程序启动时执行此操作的问题。引用静态的Register方法,并在应用程序启动时调用它一次