标签: entity-framework-5

代码优先迁移 MissingManifestResourceException

我目前正在为新数据库创建 InitialCreate 迁移。我是这个迁移框架的新手,不知道它到底生成了什么,我一直在运行update-database以查看结果,删除数据库然后update-database在进行一些更改以查看结果后再次运行。

现在我做了两次更改,去运行更新并收到如下错误:

应用基于代码的迁移:201209121936571_InitialCreate。System.Resources.MissingManifestResourceException: 找不到适合指定区域性或中性区域性的任何资源。确保在编译时将“$assemblyName$.resources”正确嵌入或链接到程序集“$assemblyName$”中,或者确保所有所需的附属程序集都是可加载的并已完全签名。在 [堆栈跟踪]

然后它以红色结尾

找不到适合指定文化或中性文化的任何资源。确保在编译时将“$assemblyName$.Migrations.InitialCreate.resources”正确嵌入或链接到程序集“$assemblyName$”中,或者确保所有所需的附属程序集都可加载且已完全签名。

我第一次遇到这个问题时,我删除了迁移文件夹,enable-migrations重新进行了更改并能够运行迁移。

它再次发生,我不想每次发生这种情况时都必须重新创建文件。有谁知道如何更正此问题以使迁移再次工作?

entity-framework entity-framework-5 entity-framework-migrations

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

使用 Entity Framework 5 与 Oracle 11g 对话,为每个会话执行 SQL Alter 命令

我需要在每个数据库会话开始时执行一些 SQL 命令。我通过 DbContext 使用 Entity Framework 5 与 Oracle 11g 数据库交谈。

我想执行:

ALTER SESSION SET NLS_COMP=ANSI;
ALTER SESSION SET NLS_SORT=BINARY_CI;
Run Code Online (Sandbox Code Playgroud)

在会话创建开始时进行不区分大小写的搜索。
我怎么能最好地解决这个问题?

我已经将命令放在 dbContext 的构造函数中,但只有简单的单元测试,它似乎确实有效。但不确定这是否正确

public partial class Entities : DbContext
{
    public Entities()
        : base("name=Entities")
    {
        this.Database.ExecuteSqlCommand("ALTER SESSION SET NLS_COMP=ANSI");
        this.Database.ExecuteSqlCommand("ALTER SESSION SET NLS_SORT=BINARY_CI");
    }
}
Run Code Online (Sandbox Code Playgroud)

entity-framework oracle11g dbcontext entity-framework-5

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

实体框架 5 - 代码第一个数组导航属性与接口类型一对多

这些是我的课程:

public class Post : IPost
{
    public int Id { get; set; }
    public virtual int[] DuplicateOf { get; set; }
    public virtual ICommentInfo[] Comments { get; set; }
}

 public class CommentInfo : ICommentInfo
{
    public virtual string Author { get; set; }
    public virtual int Id { get; set; }
    public virtual string Text { get; set; }

    public virtual int PostId{ get; set; }
    [ForeignKey("PostId")]
    public virtual Post Post { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

将此 CommentConfiguration …

foreign-key-relationship code-first navigation-properties ef-code-first entity-framework-5

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

实体框架代码优先迁移生产(WPF 应用程序)

我最近编写了一个带有代码优先后端的 WPF 应用程序(SQL CE 4.0 数据库)。该应用程序现已广泛使用,并由非技术人员使用。

我做了一些更改,我需要添加一个迁移来反映这些更改,我已经成功完成了。只需使用命令,我就可以让它在本地计算机上正常工作Update-Database

当我部署更新时,这将如何工作?我似乎无法弄清楚我的客户数据库将如何迁移。每当我在不是我的开发机器的机器上运行时,我都会收到以下错误;

无法更新数据库以匹配当前模型,因为存在挂起的更改并且自动迁移被禁用。将待处理的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。

PS 我绝对不想启用自动迁移;)

更新 - -

这是我的初始化程序;

Database.SetInitializer(new Initializer());
Run Code Online (Sandbox Code Playgroud)

这是我实际的初始化程序;

public class Initializer : MigrateDatabaseToLatestVersion<Context, Configuration>
{
}
Run Code Online (Sandbox Code Playgroud)

这是我的 Configuration 类的构造函数;

public Configuration()
{
    AutomaticMigrationsEnabled = false;

    DbMigrator migrator = new DbMigrator(this);

    if (migrator.GetPendingMigrations().Any())
    {
        _pendingMigrations = true;
        migrator.Update();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf entity-framework-5

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

Entity Framework -Update-Database- 不创建数据库

视觉工作室 2013

我正在尝试在 PluralSight 学习 asp.net MVC。我创建了一个名为 eManagr.Domain 的项目(dll),其中包含以下类:Department / Employee / IDepartmentDatasource

部门.cs

public class Department
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual ICollection<Employee> Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

员工.cs

public class Employee
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

部门数据源

public interface IDepartmentDataSource
{
    IQueryable<Employee> Employees { get; }
    IQueryable<Department> Departments { get; } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc entity-framework-5

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

EF5中的连接属性

我试图使用Entityframework Connection建立SQL连接,我在谷歌获得了beow代码

((EntityConnection)dataContext.Connection).StoreConnection;
Run Code Online (Sandbox Code Playgroud)

但我无法获得Connection属性.它不可用,并认为在EF5中会发生类似于以下代码的一些更改,并在此处发布我的说明.

dataContext.ContextOptions.LazyLoadingEnabled
Run Code Online (Sandbox Code Playgroud)

在EF5中

dataContext.Configuration.LazyLoadingEnabled
Run Code Online (Sandbox Code Playgroud)

如何获得EF5中的连接属性?或者我错过了什么!

谢谢

c# entity-framework-5

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

比较Entity Framework 5中Any()与Count()的生成查询的性能

在我的项目中,我使用Entity Framework 4.4.0.0,我遇到了以下困境.我必须检查用户是否被激活.我的查询如下:

任何()

_context.Users.Any(u => u.Id == userId && u.IsActivated);
Run Code Online (Sandbox Code Playgroud)

生成的sql是:

SELECT CASE
         WHEN ( EXISTS (SELECT 1 AS [C1]
                        FROM   [dbo].[Users] AS [Extent1]
                        WHERE  ( [Extent1].[Id] = @p__linq__0 )
                               AND ( [Extent1].[IsActivated] = 1 )) ) THEN cast(1 AS BIT)
         WHEN ( NOT EXISTS (SELECT 1 AS [C1]
                            FROM   [dbo].[Users] AS [Extent2]
                            WHERE  ( [Extent2].[Id] = @p__linq__0 )
                                AND ( [Extent2].[IsActivated] = 1 )) ) THEN cast(0 AS BIT)
       END AS [C1]
FROM   (SELECT 1 AS X) AS …
Run Code Online (Sandbox Code Playgroud)

c# t-sql performance linq-to-entities entity-framework-5

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

"操作无法完成,因为DbContext已被处理"异常并且禁用了延迟加载

鉴于:

    public ActionResult List()
    {
        using (var unitOfWork = new UnitOfWork())
        {
            var result = unitOfWork.Repository.Find<EntityAddress>(a => a.PostalCode == "80001");
            //return View(result.ToList());//NO Exception raised with ToList()
            return View(result);//EXCEPTION RAISED IN VIEW DURING ITERATION
        }            
    }
Run Code Online (Sandbox Code Playgroud)

UnitOfWork是一次性的,处理我的DbContext.它还禁用构造函数中的延迟加载:

    public UnitOfWork()
    {
        _dbContext.Configuration.LazyLoadingEnabled = false;
        Repository = new GenericRepository<MyEntities>(_dbContext);            
    }

    public void Dispose()
    {
        Repository.Dispose();
    }
Run Code Online (Sandbox Code Playgroud)

Find<EntityAddress>()实施工程以:

_dbContext.Set<EntityAddress>().Where(predicate) 其中谓词是类型的参数 Expression<Func<EntityAddress, bool>>

为什么即使在禁用延迟加载后也会出现处理异常?

c# asp.net-mvc-3 entity-framework-5

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

使用Fluent API定义实体框架密钥

我试图为具有两个关键属性的模型类型定义一个键,并定义如下:

type Model () =
    member val IdOne = 0 with get, set
    member val IdTwo = 0 with get, set
    member val OtherProperty = "" with get, set
Run Code Online (Sandbox Code Playgroud)

当我尝试在Entity Framework 5中使用此模型时,我收到错误"模型没有定义键.定义此EntityType的键".给出了模型类型,我无法更改它们并添加[<Key>]属性.所以我尝试了Fluent API.

在C#中,你会做这样的事情:

modelBuilder.Entity<Model>().HasKey(m => new { m.IdOne, m.IdTwo });
Run Code Online (Sandbox Code Playgroud)

它使用匿名类型.但对于我的生活,我无法弄清楚如何在F#中解决这个问题.我尝试了Tuples,Records,甚至是具有IdOne和IdTwo属性的常规类型:

// Regular type with properties IdOne & IdTwo.
type ModelKey (idOne, idTwo) =
    member this.IdOne = idOne
    member this.IdTwo = idTwo
modelBuilder.Entity<Model>().HasKey(fun (m : Model) -> ModelKey (m.IdOne, m.IdTwo))
// ArgumentNullException: Value cannot be null. Parameter …
Run Code Online (Sandbox Code Playgroud)

f# entity-framework ef-code-first f#-3.0 entity-framework-5

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

IOrderedQueryable Skip and Take

我有以下抽象类,我的所有存储库都继承自:

abstract class RepositoryBase<T> {
    void Add();
    void Delete();
    void SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

我想添加另一种方法来自动分页IQueryable<T>List<T>从结果中返回a :

protected List<T> Paginate(IQueryable<T> content, int? skip, int? take)
{
    if (skip.HasValue) content = content.Skip(skip.Value);
    if (skip.HasValue && take.HasValue) content = content.Take(take.Value);
    return content.ToList();
}
Run Code Online (Sandbox Code Playgroud)

但是,Skip要求来源IOrderedQueryable<T>.我尝试将方法签名更改为:

Paginate(IOrderedQueryable<T> content, int? skip, int? take)
Run Code Online (Sandbox Code Playgroud)

Skip返回一个,IQueryable<T>所以我收到错误Cannot convert source type 'System.Linq.IQueryable<T>' to target type 'System.Linq.IOrderedQueryable<T>'

如何强制实现类发送我的方法IOrderedQueryable<T>并使我的paginate方法工作?

c# linq iqueryable entity-framework-5

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