gpt4 book ai didi

c# - 使用 DapperExtensions 映射时如何指定架构?

转载 作者:行者123 更新时间:2023-12-04 07:23:22 26 4
gpt4 key购买 nike

我正在尝试使用 DapperExtensions 从 SQL 数据库中获取所有记录。
但我有一个模式设置为 dbo对于一些表。因此,无法从 sql 查询中识别该表。
例如,表格的格式为 [Schema][TableName] .但是当我开始查询时,会抛出如下错误:

Invalid object name 'TableName'.


这是模型类:
using System;
using Dapper.Contrib.Extensions;
using ImOnTech.Teftis.Core.Models;
using ImOnTech.Teftis.Core.Models.DT_Inspection;

namespace ImOnTech.Teftis.Core.Models.DT_Inspection
{
[Table("DT_Inspection.City")]

public class City
{
这是 GetAll 的函数来自数据库的记录:
public async Task<IReadOnlyList<City>> GetAllAsync()
{
var CityList = await Context.Connection.GetListAsync<City>();
Context.Connection.Close();
return CityList.ToList();

}

最佳答案

在映射模型时,请更加明确。提Schema明确地。
以下是如何提供各种映射属性的示例。

public class Customer
{
public int CustomerID { get; set; }
public string Name { get; set; }
}

public sealed class CustomerMapper : ClassMapper<Customer>
{
public CustomerMapper()
{
Schema("dbo");
Table("Customer");
Map(x => x.CustomerID).Key(KeyType.Identity);
AutoMap();
}
}
请注意,如果您在模型中的列名和属性名相同,则无需调用 Map对于每个属性(我在 Map(x => x.CustomerID).Key(KeyType.Identity); 上面所做的方式)。相反,只需调用 AutoMap();和属性将自动映射。
要让 Dapper Extensions 知道这些映射,请在应用程序启动时仅调用一次以下代码:
DapperExtensions.DapperExtensions.SetMappingAssemblies(new[] { Assembly.GetExecutingAssembly() });

关于c# - 使用 DapperExtensions 映射时如何指定架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68363594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com