//
using System;
using System.Reflection;
using System.Resources;
using System.Globalization;
using System.Threading;
namespace FreeSql
{
///
///
/// String resources used in FreeSql exceptions, etc.
///
///
/// These strings are exposed publicly for use by database providers and extensions.
/// It is unusual for application code to need these strings.
///
///
public static class DbContextStrings
{
private static readonly ResourceManager _resourceManager = new ResourceManager("FreeSql.DbContext.Properties.DbContextStrings", typeof(DbContextStrings).Assembly);
private static CultureInfo _resourceCulture;
///
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
///
public static CultureInfo Culture
{
get
{
return _resourceCulture;
}
set
{
_resourceCulture = value;
}
}
///
/// AddFreeDbContext 发生错误,请检查 {dbContextTypeName} 的构造参数都已正确注入
///
public static string AddFreeDbContextError_CheckConstruction(object dbContextTypeName)
=> string.Format(
GetString("AddFreeDbContextError_CheckConstruction", nameof(dbContextTypeName)),
dbContextTypeName);
///
/// 不可添加,已存在于状态管理:{entityString}
///
public static string CannotAdd_AlreadyExistsInStateManagement(object entityString)
=> string.Format(
GetString("CannotAdd_AlreadyExistsInStateManagement", nameof(entityString)),
entityString);
///
/// 不可添加,实体没有主键:{entityString}
///
public static string CannotAdd_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("CannotAdd_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可添加,未设置主键的值:{entityString}
///
public static string CannotAdd_PrimaryKey_NotSet(object entityString)
=> string.Format(
GetString("CannotAdd_PrimaryKey_NotSet", nameof(entityString)),
entityString);
///
/// 不可添加,自增属性有值:{entityString}
///
public static string CannotAdd_SelfIncreasingHasValue(object entityString)
=> string.Format(
GetString("CannotAdd_SelfIncreasingHasValue", nameof(entityString)),
entityString);
///
/// 不可附加,实体没有主键:{entityString}
///
public static string CannotAttach_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("CannotAttach_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可附加,未设置主键的值:{entityString}
///
public static string CannotAttach_PrimaryKey_NotSet(object entityString)
=> string.Format(
GetString("CannotAttach_PrimaryKey_NotSet", nameof(entityString)),
entityString);
///
/// 不可删除,数据未被跟踪,应该先查询:{entityString}
///
public static string CannotDelete_DataNotTracked_ShouldQuery(object entityString)
=> string.Format(
GetString("CannotDelete_DataNotTracked_ShouldQuery", nameof(entityString)),
entityString);
///
/// 不可删除,实体没有主键:{entityString}
///
public static string CannotDelete_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("CannotDelete_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可删除,未设置主键的值:{entityString}
///
public static string CannotDelete_PrimaryKey_NotSet(object entityString)
=> string.Format(
GetString("CannotDelete_PrimaryKey_NotSet", nameof(entityString)),
entityString);
///
/// 不可进行编辑,实体没有主键:{entityString}
///
public static string CannotEdit_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("CannotEdit_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可更新,数据未被跟踪,应该先查询 或者 Attach:{entityString}
///
public static string CannotUpdate_DataShouldQueryOrAttach(object entityString)
=> string.Format(
GetString("CannotUpdate_DataShouldQueryOrAttach", nameof(entityString)),
entityString);
///
/// 不可更新,实体没有主键:{entityString}
///
public static string CannotUpdate_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("CannotUpdate_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可更新,未设置主键的值:{entityString}
///
public static string CannotUpdate_PrimaryKey_NotSet(object entityString)
=> string.Format(
GetString("CannotUpdate_PrimaryKey_NotSet", nameof(entityString)),
entityString);
///
/// 不可更新,数据库不存在该记录:{entityString}
///
public static string CannotUpdate_RecordDoesNotExist(object entityString)
=> string.Format(
GetString("CannotUpdate_RecordDoesNotExist", nameof(entityString)),
entityString);
///
/// 请在 OnConfiguring 或 AddFreeDbContext 中配置 UseFreeSql
///
public static string ConfigureUseFreeSql
=> GetString("ConfigureUseFreeSql");
///
/// DbSet.AsType 参数错误,请传入正确的实体类型
///
public static string DbSetAsType_NotSupport_Object
=> GetString("DbSetAsType_NotSupport_Object");
///
/// 实体类型 {EntityTypeName} 无法转换为 {name},无法使用该方法
///
public static string EntityType_CannotConvert(object EntityTypeName, object name)
=> string.Format(
GetString("EntityType_CannotConvert", nameof(EntityTypeName), nameof(name)),
EntityTypeName, name);
///
/// 实体类型 {EntityTypeName} 主键类型不为 {fullName},无法使用该方法
///
public static string EntityType_PrimaryKeyError(object EntityTypeName, object fullName)
=> string.Format(
GetString("EntityType_PrimaryKeyError", nameof(EntityTypeName), nameof(fullName)),
EntityTypeName, fullName);
///
/// 实体类型 {EntityTypeName} 主键数量不为 1,无法使用该方法
///
public static string EntityType_PrimaryKeyIsNotOne(object EntityTypeName)
=> string.Format(
GetString("EntityType_PrimaryKeyIsNotOne", nameof(EntityTypeName)),
EntityTypeName);
///
/// FreeSql.Repository 设置过滤器失败,原因是对象不属于 IRepository
///
public static string FailedSetFilter_NotBelongIRpository
=> GetString("FailedSetFilter_NotBelongIRpository");
///
/// 不可比较,实体没有主键:{entityString}
///
public static string Incomparable_EntityHasNo_PrimaryKey(object entityString)
=> string.Format(
GetString("Incomparable_EntityHasNo_PrimaryKey", nameof(entityString)),
entityString);
///
/// 不可比较,未设置主键的值:{entityString}
///
public static string Incomparable_PrimaryKey_NotSet(object entityString)
=> string.Format(
GetString("Incomparable_PrimaryKey_NotSet", nameof(entityString)),
entityString);
///
/// FreeSql.Repository Insert 失败,因为设置了过滤器 {filterKey}: {filterValueExpression},插入的数据不符合 {entityString}
///
public static string InsertError_Filter(object filterKey, object filterValueExpression, object entityString)
=> string.Format(
GetString("InsertError_Filter", nameof(filterKey), nameof(filterValueExpression), nameof(entityString)),
filterKey, filterValueExpression, entityString);
///
/// ISelect.AsType 参数不支持指定为 object
///
public static string ISelectAsType_ParameterError
=> GetString("ISelectAsType_ParameterError");
///
/// {tableTypeFullName} 不存在属性 {propertyName}
///
public static string NotFound_Property(object tableTypeFullName, object propertyName)
=> string.Format(
GetString("NotFound_Property", nameof(tableTypeFullName), nameof(propertyName)),
tableTypeFullName, propertyName);
///
/// 找不到方法 DbSet<>.StatesRemoveByObjects
///
public static string NotFoundMethod_StatesRemoveByObjects
=> GetString("NotFoundMethod_StatesRemoveByObjects");
///
/// 参数 data 类型错误 {entityTypeFullName}
///
public static string ParameterDataTypeError(object entityTypeFullName)
=> string.Format(
GetString("ParameterDataTypeError", nameof(entityTypeFullName)),
entityTypeFullName);
///
/// 参数错误 {param}
///
public static string ParameterError(object param)
=> string.Format(
GetString("ParameterError", nameof(param)),
param);
///
/// 参数错误 {param} 不能为 null
///
public static string ParameterError_CannotBeNull(object param)
=> string.Format(
GetString("ParameterError_CannotBeNull", nameof(param)),
param);
///
/// 参数错误 {many} 不是集合属性
///
public static string ParameterError_IsNot_CollectionProperties(object many)
=> string.Format(
GetString("ParameterError_IsNot_CollectionProperties", nameof(many)),
many);
///
/// 参数错误 {many} 集合属性不存在
///
public static string ParameterError_NotFound_CollectionProperties(object many)
=> string.Format(
GetString("ParameterError_NotFound_CollectionProperties", nameof(many)),
many);
///
/// 参数错误 {one} 属性不存在
///
public static string ParameterError_NotFound_Property(object one)
=> string.Format(
GetString("ParameterError_NotFound_Property", nameof(one)),
one);
///
/// Propagation_Mandatory: 使用当前事务,如果没有当前事务,就抛出异常
///
public static string Propagation_Mandatory
=> GetString("Propagation_Mandatory");
///
/// Propagation_Never: 以非事务方式执行操作,如果当前事务存在则抛出异常
///
public static string Propagation_Never
=> GetString("Propagation_Never");
///
/// {tableTypeFullName} 类型的属性 {propertyName} 不是 OneToMany 或 ManyToMany 特性
///
public static string PropertyOfType_IsNot_OneToManyOrManyToMany(object tableTypeFullName, object propertyName)
=> string.Format(
GetString("PropertyOfType_IsNot_OneToManyOrManyToMany", nameof(tableTypeFullName), nameof(propertyName)),
tableTypeFullName, propertyName);
///
/// 特别错误:批量添加失败,{dataType} 的返回数据,与添加的数目不匹配
///
public static string SpecialError_BatchAdditionFailed(object dataType)
=> string.Format(
GetString("SpecialError_BatchAdditionFailed", nameof(dataType)),
dataType);
///
/// 特别错误:更新失败,数据未被跟踪:{entityString}
///
public static string SpecialError_UpdateFailedDataNotTracked(object entityString)
=> string.Format(
GetString("SpecialError_UpdateFailedDataNotTracked", nameof(entityString)),
entityString);
///
/// 已开启事务,不能禁用工作单元
///
public static string TransactionHasBeenStarted
=> GetString("TransactionHasBeenStarted");
///
/// {tableTypeFullName} 类型已设置属性 {propertyName} 忽略特性
///
public static string TypeHasSetProperty_IgnoreAttribute(object tableTypeFullName, object propertyName)
=> string.Format(
GetString("TypeHasSetProperty_IgnoreAttribute", nameof(tableTypeFullName), nameof(propertyName)),
tableTypeFullName, propertyName);
///
/// {unitOfWorkManager} 构造参数 {fsql} 不能为 null
///
public static string UnitOfWorkManager_Construction_CannotBeNull(object unitOfWorkManager, object fsql)
=> string.Format(
GetString("UnitOfWorkManager_Construction_CannotBeNull", nameof(unitOfWorkManager), nameof(fsql)),
unitOfWorkManager, fsql);
///
/// FreeSql.Repository Update 失败,因为设置了过滤器 {filterKey}: {filterValueExpression},更新的数据不符合{entityString}
///
public static string UpdateError_Filter(object filterKey, object filterValueExpression, object entityString)
=> string.Format(
GetString("UpdateError_Filter", nameof(filterKey), nameof(filterValueExpression), nameof(entityString)),
filterKey, filterValueExpression, entityString);
private static string GetString(string name, params string[] formatterNames)
{
var value = _resourceManager.GetString(name,_resourceCulture);
for (var i = 0; i < formatterNames.Length; i++)
{
value = value.Replace("{" + formatterNames[i] + "}", "{" + i + "}");
}
return value;
}
}
}