小编AFr*_*eze的帖子

具有MySQL连接器6.4.3自动生成表的实体框架4导致"列长度"异常

我使用Code First方法处理MySQL和.Net EntityFramework 4.mysql连接器版本是6.4.3.

当我第一次运行项目时,我的初始化程序尝试"DropCreateDatabaseAlways".创建数据库以及所有表.然后抛出以下异常.

Column length too big for column 'ModelHash' (max = 21845); use BLOB or TEXT instead
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: MySql.Data.MySqlClient.MySqlException: Column length too big for column 'ModelHash' (max = 21845); use BLOB or TEXT instead

Source Error:

Line 38: public virtual List GetAll() Line 39: { …

Run Code Online (Sandbox Code Playgroud)

mysql entity-framework-4 asp.net-mvc-3

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

实体框架与mysql,linux和windows之间的表资本化问题

我们目前正在使用Code First Entity Framework和Mysql开发产品.开发数据库托管在Windows环境中,而生产mysql在Linux上.

我遇到的问题是mysql中的表命名如下:

 mydatabase.industry
 mydatabase.account
 ...
Run Code Online (Sandbox Code Playgroud)

实体框架创建一个这样的查询:

  Select * FROM mydatabase.Industry;
Run Code Online (Sandbox Code Playgroud)

注意大写字母.这适用于Windows中的mysql,但在Linux上我收到此错误:

  Table 'mydatabase.Industry' doesn't exist
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

mysql sql entity-framework

7
推荐指数
2
解决办法
5378
查看次数

麻烦嘲笑Lambda与Unitofwork的存储库

我正在使用.net 4与C#,EntityFramework 4和Moq 4.我正在尝试模拟我的UnitOfWork,一个Repository,最后是一个方法调用.

这是我遇到问题的代码

        var unitOfWorkMock = new Mock<UnitOfWork>();
        var cFieldRepositoryMock = new Mock<IRepository<CField>>();

        System.Linq.Expressions.Expression<Func<CField, bool>> query = (x) => x.CID == c && x.FID == parentFID;

        cFieldRepositoryMock.Setup(x => x.GetFirst(query));
Run Code Online (Sandbox Code Playgroud)

GetFirst的方法签名:

          T GetFirst(Expression<Func<T, bool>> query = null,
        Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null);
Run Code Online (Sandbox Code Playgroud)

CField:

public class CField
{
    public CField()
    {
       //do stuff
    }
    public int ID { get; set; }
    public int FID { get; set; }
    public int CID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我期望发生的事情:我期待我调用我的cFieldRepositoryMock的GetFirst方法,它将匹配我传入的lambda表达式与我在Setup中定义的表达式.

发生了什么:我在安装程序分配上遇到编译器错误:"表达式树可能不包含使用可选参数的调用或调用"

我显然做错了什么,我只是不确定是什么.任何建议表示赞赏,我对单元测试相当新.

谢谢!AFrieze

c# unit-testing moq repository unit-of-work

5
推荐指数
1
解决办法
1703
查看次数

在EntityFramework中将POCO对象转换为Proxy对象

我有一个MVC3项目,我遇到了一个问题.我有一个Create控制器,它将我的POCO对象作为参数.我将此对象添加到数据库中,如下所示:

  entity = dbSet.Add(entity);
Run Code Online (Sandbox Code Playgroud)

这个方法返回后,我想使用对象的延迟加载功能.不幸的是,该对象不是EntityFramework生成的Proxy对象...有没有办法以某种方式解决这个问题?

谢谢,AFrieze

proxy entity-framework poco asp.net-mvc-3

4
推荐指数
1
解决办法
1429
查看次数

指定从多个项目使用的实体框架的连接字符串

我目前正在使用带有POCO对象的EntityFramework 4.POCO对象位于自己的.net项目(project.Models)中.Context位于DAL项目(project.DAL)中.我有多个其他项目,我希望使用上下文/模型,例如:

project.Website

project.Webservice

project.ConsoleApplication

问题:如何自己设置Context的连接字符串?
我注意到如果我在那里添加它,Context对象会自动在网站的web.config中找到连接字符串.我是否需要为所有其他项目做类似的事情?这似乎不优雅,我想我宁愿有办法从我自己的配置文件或其他东西手动配置它.

谢谢!AFrieze

connection-string entity-framework-4

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

IIS7将web.config从经典迁移到集成问题

我有一个定义自定义httpmodule的web服务.我正在尝试将此Web服务启动到运行IIS7的生产服务器上,但只能使其在经典模式下运行.

我试过移动这一节

 <system.web>
<httpModules>
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</httpModules>
...
Run Code Online (Sandbox Code Playgroud)

像这样的system.webserver部分:

  <system.webServer>
<modules runAllManagedModulesForAllRequests="true">
  <add name="BasicAuthenticationModule" type="MyProject.UserAuthenticator.UserNameAuthenticator" />
</modules>
Run Code Online (Sandbox Code Playgroud)

当我尝试这个IE给我这个错误:

  Config Error
  Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to          
  'BasicAuthenticationModule' 
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下DOS命令自动迁移:

  appcmd migrate config "mysite/"
Run Code Online (Sandbox Code Playgroud)

并收到此消息:

  The module BasicAuthenticationModule with type "mytype" is already present in the application with a different type"", and was not migrated
Run Code Online (Sandbox Code Playgroud)

我不是IIS专家,所以任何见解都表示赞赏.


因此,经过一些研究后,似乎已经存在一个名为BasicAuthenticationModule的本机模块.我可以通过重命名我的模块"BasicCustomAuthenticationModule"来消除我的问题.这是正确的方法还是应该删除另一个?

谢谢!AFrieze

iis-7 iis-6 module httpmodule

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

带有ß字符的字符串的UrlEncoding问题

我有一个参数,我必须作为网址的一部分传递.该参数包含以下字符:ß

当我编码这个字符串时,我期待这个:%DF,但我得到:%c3%9f

这是我用来测试的一系列C#

  string test = HttpUtility.UrlEncode("ß");
Run Code Online (Sandbox Code Playgroud)

c# encoding urlencode

0
推荐指数
1
解决办法
2669
查看次数