标签: entity-framework-5

.NET 4.5,EF 5和MembershipProvider

有没有人知道是否会创建一个与EF 5一起使用的默认MembershipProvider(如SqlMembershipProvider和ActiveDirectoryMembershipProvider),或者我们仍然需要创建自定义的(当然是Code First)?

membership-provider .net-4.5 entity-framework-5

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

实体框架5的源代码在哪里

我知道EF在CodePlex上是开源的,但我没有看到当前发布的5.0版本的分支.我在哪里可以获得此源代码?

entity-framework entity-framework-5

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

实体框架5数据库优先级的依赖注入.入门?

我正在寻找使用Entity Framework 5和Database First(连接到SQL Server 2008 R2)创建VB.NET 11 WPF MVVM应用程序.

我选择了Database First,因为我正在将现有解决方案迁移到WPF MVVM,当然数据库已经存在.

我想开始使用依赖注入,所以我可以尽可能多地对我的代码进行单元测试.

我似乎无法找到如何使用依赖注入与EF DB-First,特别是与vb.net一起使用的简明扼要的演练.虽然即使是C#的例子也不错,但我确定.

我真正喜欢的是一个简单的一步一步的指南,解释如何设置解决方案,如何设置每个部分准备好依赖注入等,但这些似乎很难得到.

到目前为止,我已经创建了解决方案及其项目,如下所示;

  • DBAccess - 它只包含我的.edmx文件,以及一个能够将ConnectionString提供给构造函数的小mod.
  • DBControl - 它包含了我用来在EDMX和ViewModel之间提供图层的各种类.具体来说,我在这里填写复杂类型(我使用设计器创建),用于通过UI显示"Friendlier"数据,以及将这些"友好"复杂类型转换为映射实体以进行保存/更新.我的数据库中每个表都有一个类.每个方法都有两个"FetchFriendlyRecords"方法(一个接受过滤器)和一个" AddUpdateFriendlyRecord "方法.我为每个类创建了一个接口.每个类在它的构造函数中接受一个DbContext,我只是从DBAccess项目传递我的DBContext.
  • MainUI - 它包含我的MVVM层,并引用DBControl项目中的每个类以提供DataBinding等.

我已经看到建议,不是花时间编写复杂的解决方案,以便能够使用EF进行单元测试,而是创建一个填充了测试数据的公司模拟数据库,并简单地将代码指向模拟数据库,而不是住一个.但是,我更愿意能够创建一个内存解决方案,无需点击SQL Server即可运行.

任何帮助都会很棒,包括告诉我我是否会这么做错!

更新:

我已经采取了下面由Paul Kirby提供的解决方案,并创建了一个"排序"的存储库模式我相信.

我创建了一个界面;

Public Interface IFriendlyRepository(Of T)
        ReadOnly Property FriendlyRecords As ObservableCollection(Of T)
        Function GetFilteredFriendlyRecords(predicates As List(of Func(Of T, Boolean))) As ObservableCollection(Of T)
        Function AddEditFriendlyRecord(ByVal RecordToSave As T) As EntityException
        Sub SaveData()
End Interface
Run Code Online (Sandbox Code Playgroud)

然后我逐个类地实现了这个接口;

Namespace Repositories
    Public Class clsCurrenciesRepository
        Implements Interfaces.IFriendlyRepository(Of CriticalPathDB.FriendlyCurrencies)

        Private …
Run Code Online (Sandbox Code Playgroud)

vb.net entity-framework dependency-injection ef-database-first entity-framework-5

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

我应该如何首先使用EF代码在用户之间建立友谊?

我想弄清楚如何用Entity Framework(5)Code First来表示用户之间的友谊.我最初的想法是创建一个友谊类,其中包含对两个User实例的引用,以便友谊由单独的对象表示.

public class Friendship
{
    public virtual int Id { get; set; }
    [Required]
    public virtual UserProfile User1 { get; set; }
    [Required]
    public virtual UserProfile User2 { get; set; }
    [Required]
    public virtual DateTime Since { get; set; }
}

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    [Required]
    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,当尝试通过EF迁移创建数据库时,由于SQL错误,我感到困惑:

Introducing FOREIGN KEY constraint 'FK_dbo.Friendships_dbo.UserProfile_User2_UserId' on table 'Friendships' may cause cycles or multiple …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-code-first ef-migrations entity-framework-5

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

EF5模型在一个单独的项目中看不到DbContext方法

我是EF的新手,我从EF5开始.

遵循实体框架5性能注意事项的建议,2.4.2将模型移动到单独的程序集...我创建了一个单独的项目(我将其称为EfPrj)来管理我的Db上下文(称为MyDbContext).

在我的域层(我将其称为DomainPrj)中,我使用了EfPrj中的实体.问题是在DomainPrj中我看不到继承自DbContext的MyDbContext成员.

例如,如果我想更新表用户,则代码为:

void UpdateUser(User u)
{
    MyDbContext db = new MyDbContext();
    //whatever is needed
    db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

但是在EfPrj中它没有问题.在DomainPrj中,我看不到成员函数SaveChanges(),收到此错误:

'MyDbContext' does not contain a definition for 'SaveChanges' and no extension method 'SaveChanges' ... could be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

更新: EfPrj只是一个带有ORM数据库优先模型的项目.MyDbContext默认定义为EF5对象:public partial class MyDbContext:DbContext {public MyDbContext():base("name = MyDbEntities"){}

所以派生自DbContext并且是公开的.DomainPrj引用EfPrj并且MyDbContext db = new MyDbContext()没有问题.

c# entity-framework-5

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

ASP.NET MVC4 n-Tier架构:最好的方法

我为MVC4 webapp + EntityFramwork5开发了3层架构.我想保留separete这个层,所以只有DAL知道我正在使用EF,例如.

实际上我有很多课程来管理:

DAL

  1. 实体POCO
  2. 实体DataContext:DbContext
  3. 实体存储库

BL

  1. 实体ViewModel
  2. 实体服务(实例化实体存储库)

WEB

  1. 实体控制器(实例化实体服务)

这是有效的,但很难保持.我想在DAL中删除实体存储库并直接使用DataContext(如果我没有错,在所有DbContext被设计为存储库和工作单元之后),但这将迫使我添加一个引用我的BL中的EntityFramework.dll.这不是一个大问题,但我不确定它是最好的选择.

有什么建议?

(我希望我提供了足够的信息,如果你需要更多,请问)

n-tier-architecture asp.net-mvc-4 entity-framework-5

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

EF5需要更新ContainerName.FunctionImportName以便在更新模型时访问存储过程,任何有趣的解决方案?

我是实体框架的新手,如果我的问题太简单,请原谅我.

我现在正在使用EF5构建我的项目,在我的项目中有一个函数导入"GetStockItem",它调用存储过程并从SP返回数据.每当我从模型图中"从数据库更新模型"时,更新向导都会反映数据库的更改而没有问题,但GetStockItem停止工作.我调用GetStockItem时的错误消息是:

"EntityCommand.CommandText的值对StoredProcedure命令无效.EntityCommand.CommandText值的格式必须为'ContainerName.FunctionImportName'."

根据错误消息中的说明,解决方案很明确,我只需要添加ContainerName.在context.cs文件中的FunctionImportName(在我的例子中为GetStockItem)之前.

我的问题是,每次从数据库更新模型时,如何避免发生这种情况?偶尔做这个手动的东西很烦人,而且很容易忘记这样做然后引起用户的抱怨.

希望有人能用迷人的解决方案来启发我!干杯!

stored-procedures entity-framework-5

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

实体框架DbContext更新值无需查询和外键

I have a method for updating some tables. For update I need get first of TestProcess, but I don't like that. How can I update TestProcess without select(firstOrDefault) operation, used only for the update operation?

Example of method:

public void UpdateTestProcess(int id, string updateID)
{
    using (TestEntities context = new TestEntities())
                {
                    TestProcess pr = context.TestProcess.FirstOrDefault(x => x.MyID == id);
                    pr.UpdateID = updateID;             

                    context.TestProcess.Attach(pr);
                    context.ObjectStateManager.ChangeObjectState(pr, EntityState.Modified);
                    context.SaveChanges();
               }
}
Run Code Online (Sandbox Code Playgroud)

c# updates dbcontext entity-framework-5

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

可以抽象类继承另一个抽象类c#

我是C#和EF的初学者.在设计我的新样本应用程序时,我有一个愚蠢的疑问.抽象是否可以继承另一个抽象类

using System;
using System.ComponentModel.DataAnnotations;

namespace Spark.BusinessObjects.Common
{
   public abstract class BOBase
   {
    public virtual int UpdatedBy { get; set; }

    [DataType(DataType.DateTime)]
    public virtual DateTime UpdatedOn { get; set; }
 }

  public abstract class MasterBOBase : BOBase
 {
    public virtual int CreatedBy { get; set; }

    [DataType(DataType.DateTime)]
    public virtual DateTime CreatedOn { get; set; }
 }
}

namespace Spark.BusinessObjects.UserManagement
{
 using System;
using System.Data.Linq.Mapping;
using System.ComponentModel.DataAnnotations;

using Spark.BusinessObjects.Common;

[Table(Name = "tblUser")]
public class User:BOBase
{
    [Key]        
    public virtual int UserID …
Run Code Online (Sandbox Code Playgroud)

c# inheritance asp.net-mvc-4 entity-framework-5

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

SQL Order结果按字母顺序排列Entity Framework / C#

我想按标签(字符串)对数据行进行排序。标签是一个或多个大写字母。

例如:A-> Z后跟AA,AB,AC ....... ZZ

我希望显示的顺序为A,B,C ..... X,Y,Z,AA,AB,AC ....... BA,BB,BC ...... ZX,ZY, Z Z

在这种情况下,不能保证行的ID顺序正确,因此我不能使用行标识。

这可能吗?如果可能的话,我希望能够在C#/ Entity Framework lambda表达式中执行此操作。

c# sql lambda entity-framework-5

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