// 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; } } }