标签: dataprovider

ASP.NET MVC 3 - 无法找到请求的.Net Framework数据提供程序

背景信息:

我正在使用Microsoft Visual Web Developer 2010 Express.
关于我(缺乏)经验的信息:我正在尝试解决的第一个教程中出现的问题.

一些额外的信息:

  • 我对C#,Postgres,Rails很满意(所以MVC和Web应用对我来说并不陌生)
  • 没有使用ASP.NET或SQL Server的经验

问题描述:

我正在尝试完全遵循"介绍到ASP.NET MVC 3"教程中的步骤,并且我在第5部分的第一步遇到问题- 添加MoviesController:

当我尝试使用教程中显示的确切设置添加"MoviesController"并单击"添加"时,我收到以下错误:

"无法检索元数据MvcMovie.Models.Movie.无法找到所请求的.NET Framework数据提供.它可能没有安装."

Google在搜索"无法找到所请求的.Net Framework数据提供程序"这一短语时给出了大量结果,但到目前为止还没有解决问题.

我尝试过的:

我认为SQL-Server没有安装,所以我从Visual-Studio Express ISO安装了一个错误然后我从ISO运行修复它声称所有15点包括SQL Server Express修复和.NET 4 Framework成功地完成了.

我已经运行了The_.NET_Framework_Setup_Verification_Tool,它成功完成了所有事情. http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx

在提到(重新)安装和修复之后,我重新创建了项目,并按照教程中的描述执行了每个步骤并得到了相同的错误.

我发现我应该在machine.config中查找DbProviderFactories,

项目的root-Web.config具有以下条目

  <connectionStrings>
    <add name="MovieDBContext"
     connectionString="Data Source=|DataDirectory|Movies.sdf"
     providerName="System.Data.SqlServerCe.4.0"/>
Run Code Online (Sandbox Code Playgroud)

我的机器配置文件只有一个DbProviderFactories条目:

<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
Run Code Online (Sandbox Code Playgroud)

然后我发现了以下引用

"我们改变了DbProviderFactories.GetFactoryClasses()确定VS2010中框架提供程序的方式.它们不再列在machine.config文件中."

来自http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a

题:

所以也许这是错误的方向,因为我不知道下一步该尝试什么,我应该采取什么步骤来调查和解决这个问题? …

c# sql-server visual-web-developer dataprovider asp.net-mvc-3

55
推荐指数
3
解决办法
6万
查看次数

无法找到请求的.Net Framework数据提供程序.它可能没有安装. - 当关注mvc3 asp.net教程时

我正在关注ASP.NET MVC 3音乐商店应用程序教程,但我一直陷入第4部分:http://www.asp.net/mvc/tutorials/mvc-music-store-part-4.它一直告诉我我没有安装SQL数据提供程序:

确切的错误:

System.ArgumentException was unhandled by user code
  Message=Unable to find the requested .Net Framework Data Provider.  It may not be installed.
  Source=System.Data
  StackTrace:
       at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
       at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name)
       at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
       at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
       at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
       at System.Data.Entity.Internal.InternalContext.Initialize()
       at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
       at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
       at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator()
       at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18
       at lambda_method(Closure , ControllerBase , Object[] )
       at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
       at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext …
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net-mvc dataprovider asp.net-mvc-3

45
推荐指数
3
解决办法
14万
查看次数

部署和配置ODP.NET无需使用Entity Framework进行安装即可工作

如何在不使用Entity Framework进行安装的情况下部署和配置ODP.NET?

A.如何部署和配置Oracle.DataAccess.Client?

B.如何部署和配置Oracle.ManagedDataAccess.Client?

C.为了使用Oracle SSDL的EDMX进行构建,您需要做什么?

D.您需要为设计师支持安装什么?

oracle entity-framework app-config odp.net dataprovider

33
推荐指数
2
解决办法
8万
查看次数

TestNG:@Test的多个@DataProvider

我正在使用TestNG for Eclipse.

我的问题是,如果可能的话,一步一步地给两个数据提供者提供相同的测试功能?我可以将两个提供商合二为一,但这不是我想要的.我需要(不像在这个例子中)独立生成数据.

@DataProvider(name = "dataSet1")

    public Object[][] createDataX() {
             return new Object[][] { { 1, 1 }, { 2, 2 } };
    }

@DataProvider(name = "dataSet2")

    public Object[][] createDataY() {
             return new Object[][] { { 0, 0 }, { 3, 3 } };
    }
Run Code Online (Sandbox Code Playgroud)

我想让BOTH提供商进行同样的测试.这可能吗?

 @Test(dataProvider = "dataSet1") // ??? and "dataSet2" ???
    public void testThisFunction(int val1, int val2) {
            boolean solution = oracle(val1,val2);
            assert (solution);
   }
Run Code Online (Sandbox Code Playgroud)

java testing testng automated-tests dataprovider

23
推荐指数
1
解决办法
3万
查看次数

在VS 2013中缺少SQLite数据提供程序

我正在使用VS 2013来开发Win 8.1应用程序.我选择处理SQLite,但是当我尝试添加新连接来管理我的数据库时,我找不到数据提供程序.

任何帮助表示赞赏

sqlite dataprovider visual-studio

22
推荐指数
2
解决办法
3万
查看次数

PHPUnit和数据提供者的问题

我有以下测试用例:

include_once('../Logger.php');

class LoggerTest extends PHPUnit_Framework_TestCase {

    public function providerLogger() {
        return new Logger;
    }

    /**
     * @dataProvider providerLogger
     */
    public function testAddStream($logger) {
        $this->assertTrue(false);
    }

}
Run Code Online (Sandbox Code Playgroud)

当我在PHPUnit中运行它时,我得到:

PHPUnit 3.4.14 by Sebastian Bergmann.

..........

Time: 0 seconds, Memory: 5.75Mb

OK (1 tests, 0 assertions)
Run Code Online (Sandbox Code Playgroud)

测试应该失败,但事实并非如此.我试过:

public function providerLogger() {
    return array(new Logger);
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

The data provider specified for LoggerTest::testAddStream is invalid.
Run Code Online (Sandbox Code Playgroud)

我试着宣布它static(就像手册所说的那样),但仍然没有区别.

我记得以前以类似的方式工作,但我可能是错的.我错过了什么?

在此先感谢您的帮助.

PHP 5.3.3上的PHPUnit 3.4.14(取自PEAR)

php phpunit unit-testing dataprovider

21
推荐指数
2
解决办法
2万
查看次数

错误175:找不到指定的数据存储提供程序

我正在使用VS2010和MySQL .NET Connector.我以前工作的项目开始报告:

错误175:找不到指定的数据存储提供程序,或者无效.

我不知道为什么,虽然在MS建议修改VS之后事情变得奇怪了.

果然,如果我去测试ADO.NET实体数据模型添加到项目中,实体数据模型向导生成.edmx文件不显示数据提供者时,我选择"从数据库生成".更糟糕的是,右键单击并尝试在现有的.edmx文件上执行"从数据库更新模型..."会将VS2010发送到死亡螺旋形的对话框中,这些对话框只能通过任务管理器终止.

以下是我修复它的方法:关闭VS2010.完全卸载MySQL Connector.重启.完全安装MySQL连接器.重启.重启VS2010.

突然间,我的数据提供者存在.我可以编译我的代码.以及添加测试.edmx文件.向导会看到我的MySQL数据库,传递测试连接,并使用我的关系表构建对象模型.我可以尽可能多地清理/重建.

一切都很好,直到我运行应用程序.我的"修复"不坚持.

此时抛出异常,声明连接对象返回null,如果我重新编译而没有更改代码,则会再次出现Error 175错误.泡沫,冲洗,重复.

基于此StackOverflow答案的一些实验显示连接字符串有效,并且使用MySqlConnection对象,我可以访问数据库并在此状态下滚动我自己的工作查询.

问题似乎是数据存储提供商以某种方式迷失或踩到了,这正在影响通过EntityFrameworks执行操作的能力.

我正在寻找一些关于在哪里寻找这些存储的建议,如果有人遇到类似的东西,如果有任何有用的建议或想法,你认为我可能会尝试.  

更新 - 虽然这个花絮没有解决我的问题,但它确实使VS2010更稳定:卸载.NET Connector后,我立即检查了控制面板的安装程序,发现还安装了较旧的.NET Connector.我从控制面板上卸下了一个,重新启动,然后安装了新的.VS2010现在记住了使用EntityFrameworks的数据库提供程序.显然我安装了一个更新的MySQL连接器,认为它会卸载旧的连接器,而不是互相遍历.

现在我得到一个System.ArgumentException内部System.Data.Entity.dll陈述略有不同的消息:

在配置中找不到指定的商店提供商,或者无效.System.ArgumentException:无法找到请求的.Net Framework数据提供程序.它可能没有安装.

这种情况发生在该System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)方法中.

修订注 - 上述罢工的原因是VS2010最终确实再次失去了设置.但我能够从控制面板卸载.Net连接器并重新安装连接器,无需重新启动,并在环境中重新启动数据提供程序.问题的这一部分更像是VS2010错误,而不是.NET Connector问题.

.net mysql entity-framework visual-studio-2010 dataprovider

21
推荐指数
1
解决办法
3万
查看次数

如何将模型数据对象数组转换为dataProvider

假设我的模型User与自身有多对多的关系,命名为friends.所以$user->friends(或$model->friends在视图中)给我一个User对象数组.我想将朋友显示为gridview.但CGridView数据作为dataProvider对象.谷歌搜索找到了将模型对象数组转换为dataProvider对象的方法,如下所示.

$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'gridUser',
    'dataProvider' => new CArrayDataProvider($model->friends, array()),
));
Run Code Online (Sandbox Code Playgroud)

现在使用这个我得到一个错误

属性"User.id"未定义.

UPDATE

public function relations()
{
    return array(
         'friends' => array(self::MANY_MANY, 'User', 'friendship(user_id, friend_id)'),
    );
}
Run Code Online (Sandbox Code Playgroud)

php model yii dataprovider

12
推荐指数
2
解决办法
2万
查看次数

使用DataProvider进行TestNG并行执行

我有一个测试从数据提供者接收数据.我希望此测试与数据提供程序中的不同值并行运行.

我尝试了一种方法:

public class IndependentTest
{
@Test(dataProvider = "dp1" ,threadPoolSize=3,invocationCount=1)

public void testMethod(int number)
{
    Long id = Thread.currentThread().getId();
    System.out.println("HELLO :  " + id);
}


@DataProvider(name = "dp1",parallel=true)
public Object[][] dp1() {
  return new Object[][] {
      new Object[] { 1 },
      new Object[] { 2 },
      new Object[] { 3 },
      new Object[] { 4 },
      new Object[] { 5 },
      new Object[] { 6 },
      new Object[] { 7 },
      new Object[] { 8 }

  };
}
Run Code Online (Sandbox Code Playgroud)

}

我收到的输出是: …

java testng multithreading dataprovider

12
推荐指数
1
解决办法
2万
查看次数

Yii2:如何缓存活动数据提供者?

在我的PostSearch模型中,我有这个代码:

public function search($params)
{
    $query = Post::find()->where(['status' => 1]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort'=> ['defaultOrder' => ['id' => SORT_DESC]],
        'pagination' => [
            'pageSize' => 10,
        ]
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    $query->andFilterWhere([
        'id' => $this->id,
        'status' => $this->status,
    ]);

    $query->andFilterWhere(['like', 'title', $this->title])
        ->andFilterWhere(['like', 'text', $this->text]);

    return $dataProvider;
Run Code Online (Sandbox Code Playgroud)

我的尝试,而不是上面的行return $dataProvider,将是这段代码:

$dependency = [
    'class' => 'yii\caching\DbDependency',
    'sql' => 'SELECT MAX(updated_at) FROM post',
];

$result = self::getDb()->cache(function ($db) {
    return $dataProvider;
}, …
Run Code Online (Sandbox Code Playgroud)

php caching dataprovider yii2

11
推荐指数
1
解决办法
5744
查看次数