Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 循环基类_.net_Orm_Petapoco - Fatal编程技术网

.net 循环基类

.net 循环基类,.net,orm,petapoco,.net,Orm,Petapoco,我得到以下错误,我粘贴了代码和连接字符串。我第一次使用PetaPoco Circular base class dependency involving 'PetaPoco.DatabaseConfiguration' and 'PetaPoco.DatabaseConfiguration.IBuildConfigurationSettings' 以下是连接字符串: <add name="PriceCheckString" connectionString="Data Source

我得到以下错误,我粘贴了代码和连接字符串。我第一次使用PetaPoco

Circular base class dependency involving 'PetaPoco.DatabaseConfiguration' and 'PetaPoco.DatabaseConfiguration.IBuildConfigurationSettings'  
以下是连接字符串:

 <add name="PriceCheckString" connectionString="Data Source=.;Initial     Catalog=PriceCheck;Integrated Security=SSPI;"
     providerName="System.Data.SqlClient"/>

下面是代码行

      Database priceCheck = new Database("PriceCheckString");
      var ItemPrice = priceCheck.Query<ItemPrice>("SELECT * FROM itemPrice");
Database priceCheck=新数据库(“PriceCheckString”);
var ItemPrice=priceCheck.Query(“从ItemPrice中选择*);

我也有同样的问题,并且能够解决。您必须将接口声明移到DatabaseConfiguration类之外

在PetaPoco.cs中,用以下代码替换DatabaseConfiguration类声明:

public interface IBuildConfigurationSettings
{
    /// <summary>
    ///     Sets the setting against the specified key.
    /// </summary>
    /// <param name="key">The setting's key.</param>
    /// <param name="value">The setting's value.</param>
    void SetSetting(string key, object value);

    /// <summary>
    ///     Tries to get the setting and calls the <paramref name="setSetting" /> to set the value if found.
    /// </summary>
    /// <typeparam name="T">The setting type.</typeparam>
    /// <param name="key">The setting's key.</param>
    /// <param name="setSetting">The set setting callback.</param>
    /// <param name="onFail">The on fail callback, called when no setting can be set.</param>
    void TryGetSetting<T>(string key, Action<T> setSetting, Action onFail = null);
}

/// <summary>
///     A helper class which enables fluent configuration.
/// </summary>
public class DatabaseConfiguration : IDatabaseBuildConfiguration, IBuildConfigurationSettings, IHideObjectMethods
{
    private readonly IDictionary<string, object> _settings = new Dictionary<string, object>();

    /// <summary>
    ///     Private constructor to force usage of static build method.
    /// </summary>
    private DatabaseConfiguration()
    {
    }

    /// <summary>
    ///     Starts a new PetaPoco build configuration.
    /// </summary>
    /// <returns>An instance of <see cref="IDatabaseBuildConfiguration" /> to form a fluent interface.</returns>
    public static IDatabaseBuildConfiguration Build()
    {
        return new DatabaseConfiguration();
    }

    public void SetSetting(string key, object value)
    {
        // Note: no argument checking because, pref, enduser unlikely and handled by RT/FW
        if (value != null)
            _settings[key] = value;
        else
            _settings.Remove(key);
    }

    public void TryGetSetting<T>(string key, Action<T> setSetting, Action onFail = null)
    {
        // Note: no argument checking because, pref, enduser unlikely and handled by RT/FW
        object setting;
        if (_settings.TryGetValue(key, out setting))
            setSetting((T) setting);
        else if (onFail != null)
            onFail();
    }
}
公共接口IBuildConfiguration设置
{
/// 
///根据指定的键设置设置。
/// 
///设置的关键。
///设置的值。
无效设置(字符串键、对象值);
/// 
///尝试获取设置并调用以设置值(如果找到)。
/// 
///设置类型。
///设置的关键。
///设置回调。
///on fail回调,在无法设置任何设置时调用。
void TryGetSetting(字符串键,动作设置,动作失败=null);
}
/// 
///支持流畅配置的帮助器类。
/// 
公共类数据库配置:IDatabaseBuildConfiguration、IBuildConfiguration设置、IHideObjectMethods
{
专用只读IDictionary _settings=new Dictionary();
/// 
///私有构造函数强制使用静态生成方法。
/// 
专用数据库配置()
{
}
/// 
///启动新的PetaPoco构建配置。
/// 
///的实例,以形成流畅的界面。
公共静态IDatabaseBuildConfiguration生成()
{
返回新数据库配置();
}
公共void设置(字符串键、对象值)
{
//注意:没有参数检查,因为,pref,enduser不太可能由RT/FW处理
if(值!=null)
_设置[键]=值;
其他的
_设置。删除(键);
}
public void TryGetSetting(字符串键,操作设置,操作失败=null)
{
//注意:没有参数检查,因为,pref,enduser不太可能由RT/FW处理
对象设置;
如果(_settings.TryGetValue(键,输出设置))
设置设置((T)设置);
else if(onFail!=null)
onFail();
}
}
您还需要查找/替换以下内容(在同一PetaPoco.cs文件中):

查找:((DatabaseConfiguration.IBuildConfigurationSettings)源).SetSetting(键,值)


替换为:((IBILDConfigurationSettings)source).SetSetting(键,值)

这在最新版本中已修复。版本5.1.114或5.1.109-beta及更高版本


有关更多详细信息,请参阅。

。我发现另一个对DatabaseConfiguration.IBuildConfiguration设置的引用也需要删除类限定符。