我在EntityFramework4中首先使用代码,EntityFrameworkFeatureCTP3
是否可以指定实体配置的名称?实际上,将表名从“xxxSet”更改为我选择的名称?据我所知,您可以从designer is Visual Studio(最简单的方法)或.edmx文件(如果您知道您在那里做什么)进行更改。另外,请尝试更新到大约2个月前发布的.NET 4.0和EF4,这样就不用考虑CTP了(有Visual C#2010或Web Developer 2010的快速版本,您可以免费使
我试图复制我们在EF CTP4中与NHibernate一起使用的许多实践
目前,我们有一个通用的存储库接口(CTP4实际上使DbContext.Set变得非常简单)
我们正在传递上下文并使用StructureMap根据HttpRequest对其进行范围限定
使用NHibernate,我们传入ISession(再次使用StructureMap创建),但在请求结束时使用ActionFilter(UnitOfWork)提交事务
我们是否有EF CTP4中的等价交易?如果不是,我应该使用相同的筛选器调用
我正在MVC应用程序中使用UnitOfWork/Service Layer/Repository/EF4 w/POCO设计
到目前为止,我有:
1) MVC Web应用程序(Project.dll)
2) 服务层(Project.Data.Services.dll)
3) 存储库层(Project.Data.Repositories.dll)
4) POCOS(Project.Data.Domain.dll)
5) EF4/上下文层(Project.Data.dll)
每个层仅引用下面的层和Pr
我需要检查给定日期和当前日期之间的差异是否小于365天
我试过这样的东西
System.TimeSpan diff = DateTime.UtcNow.Subtract((DateTime)customer.LastValidationDate);
result = (diff.Days < 1);
System.TimeSpan diff=DateTime.UtcNow.Subtract((DateTime)customer.LastValidationDate);
结果=(差异天数
我正在尝试创建一个表格驱动的多项选择问卷。每个问题中都有一个有孩子选择的问题
当我迭代listOfQuestions时,将执行第一个SQL。通过“包含”选项,我认为当我循环当前问题的选项时,这可以防止二次查找,但事实并非如此
为什么?
var listOfQuestions=(来自journeyEastContext.Questions.Include(“选择”)中的q)
OrderByQ.QuestionId
选择新的
{
问题=q,
Choices=q.Choices.OrderBy(c=>
我需要使用过滤器过滤数据
其中CategoryId=75和(BrandId=12或BrandId=3)
但是,假设C#和相同的命名列,则等效于实体的Linq使用以下方法过滤上下文:
.Where(w=>w.CategoryId==75 && (w.BrandId==12 || w.BrandId==3))
我正在尝试将EntityFramework4用于一个小型数据库应用程序,我正在编写这个应用程序来记录下载的文件。在运行应用程序时,我在tableName.Add()方法之后,在.SaveChanges()方法之前设置了一个断点,我可以看到保存到实体中的数据;在调用.SaveChanges()方法之后,我有了另一个断点,并查看数据库,发现没有保存任何记录。我发现了很多类似的问题,但我还没有找到解决我这个问题的方法。代码如下:
public void StartNewDownload(str
下午好-
我正在为数据访问层使用LINQ到实体框架开发Silverlight应用程序。我的n层数据库模型包括大约30个表,其中有许多多级父子关系。最近开始编写我的数据服务和单元测试,发现在父表记录已经定义的情况下,向子表插入新记录有问题。以下是我的父表和子表的简略版本:
父表:
用户
用户ID(主键)
电子邮件
密码
等等
子表:
用户配置文件
用户档案ID(PK)
各种配置文件信息…
用户ID(FK——用户表)
因此,在这一点上,我已经知道实体框架已经被用于为ORM创建各种类,我希望为实体上的
昨天,我决定将我的应用程序从LINQ转换为SQL再转换为EF4,以利用代码优先的特性。我创建了我的POCO,一个DbContext类,实现了新的存储库类,一切都很好
后来,我注意到用于创建SqlExpress MDF文件的文件名EF中有一个输入错误。我将旧数据库移出文件夹,清除配置文件中的连接字符串,并让EF创建一个新的空数据库。它创建了文件,向我的app.config文件添加了一个连接字符串,应用程序运行正常。但是,当我查看连接字符串中指定的文件夹时,没有MDF。事实上,这个文件夹根本不存在。
我正在尝试解决一个与此处概述的错误非常相似的错误:
看来解决方案(无可否认,我还没有尝试过)是将System.Data.Objects.SaveOptions.None作为SaveChanges()方法的SaveOptions参数传递
因此,在我这么做之前,我试图确切地了解不同的SaveOptions是如何工作的(None、AcceptAllChangesAfterSave、DetectAllChanges)。我还没有找到一个明确的解释,但是,我也不知道什么是默认的。有人能澄清一下吗
谢谢
更
我使用了ApplyCurrentValues
但我并不真正理解ApplyOriginalValues。它与ApplyCurrentValues有何不同?我应该什么时候用
我已经阅读了文件。但是仍然很困惑。从数据库加载的每个实体都保留两组值-原始值(从DB加载的值)和当前值(正在修改的值)。这两个集合在ObjectStateEntry中保留。通常,每次保存后都会接受更改,这些更改会获取当前值并将其写入原始值。如果您知道您在EF之外对实体进行了更改(例如,通过使用公共ADO.NET EF调用存储过程
我是一名NHibernate开发人员,试图在一个爱好项目中尝试实体框架。我习惯于使用Fluent NHibernate在代码中指定映射数据。请原谅Microsoft认为不应允许开发人员编写代码的想法,我正在尝试使用实体框架的visual designer图面(通过在visual Studio中打开.edmx文件获得)创建映射
我不知道如何建立多对多的关系!我已经从数据库中“更新了模型”,但是我得到了与连接表(只包含外键和它自己的主键)对应的新实体的两个一对多关系
到目前为止,所有通过点击实体和关
我有一个已知类型对象的linq查询,需要根据对象的属性对其进行排序。问题是,我只知道运行时的属性名和字符串
前
IQueryable thing=从ctx中的t开始。Things选择t;
t、 OrderBy(t=>t.Name);//如果我在编译时知道属性,这将起作用。。。
t、 订购人(“名称asc”);//但这才是我真正需要的!但它不起作用。
对于LINQtoEntities,有没有一种方法可以做到这一点?我使用的是实体框架4.1,有两个
.OrderBy(m=>m.Name)
.Ord
我有一个带有组合主键(3列)的表:
例如,当我尝试更改子类别时,如果使用EF 4,则会出现以下错误:
utl.USS_ID = Convert.ToInt32(ddlSubSetor.SelectedItem.Value);
the property is part of the object's key information and cannot be modified
有想法吗?为什么我不能更改它?作为实体键的一部分,需要从上下文中删除对象,并使用新的主键值重新附加
实体框架的工作原理
很抱歉,让一个话题死而复生,但我也遇到了与这个问题相同的问题:
我有一个返回大量68000行的查询。我正在使用ESQL查询数据库,并且我已经预先生成了我的视图
第一次运行查询需要约50秒才能返回。我已经附加了SQL Server Profiler,并看到查询在SQL Server上花费了那么多时间。后续查询大约需要10秒钟
如果我从SQLServerProfiler获取正在执行的查询,并在SSMS中执行它,则执行大约需要10秒,而不是50秒
有人知道发生了什么事吗?有什么办法可以解决这个问题吗?
需要详细解释的快速问题
假设我有两个表,一个是项目表(比如“用户”),另一个是定义表,比如“自定义属性”。系统中的许多不同项目(“用户”、“文章”、“帖子”等)都可以为其定义自定义属性,这些项目存储在“自定义属性”表中。例如,“自定义属性”表如下所示:
CREATE TABLE [CUSTOMPROP_DEFINITION] (
[ITEM_TYPE] INTEGER NOT NULL,
[POSITION] INTEGER NOT NULL,
[NAME] NVARCH
我有一个方法,它有一个模型“Address”作为参数
现在,在这个方法中,我想用提供的地址“覆盖”数据库中的现有地址——就像在SQL中更新它一样
我这样做插入位:
Context.Addresses.AddObject(adr);
Context.SaveChanges();
public void Update(Address adr)
{
Context.Addresses.Attach(adr);
我有数据层、业务层和设计层,其中我的.edmx文件放在数据层中。
现在,我想为.edmx文件生成视图以提高性能。
我尝试了以下过程:
->将.edmx文件的元数据工件处理属性设置为“复制到输出目录”
然后在我的数据层的构建事件中,我输入了以下代码:
"%windir%\Microsoft.NET\Framework\v4.0.30319\EdmGen.exe" /nologo /language:CSharp
/模式:ViewGeneration“/inssdl:$(TargetDir)Ne
大家好,我在asp.net中做了一个应用程序,效果很好,现在我正在将同一个应用程序转换为MVC,因为我是MVC的新手,我在一个点上感到惊讶,即我想将三个不同的结果绑定到相同的视图。我在asp.net中所做的工作如下
我想在MVC视图中显示相同的结果,我已经做了部分,结果如下,但我对剩下的两个进行了检查
这是我显示第一个结果的代码,我的模型中有一个存储过程来绑定统计结果,如第一幅图所示
@model IEnumerable<forumAPP.tblTechnology>
<t
我首先使用Entity Framework Power Tools反向工程代码从数据库生成poco类、映射文件和上下文。我还希望在这个过程中为每个实体创建我的基本部分验证类。我可以编写t4模板,但是当我运行反向工程代码优先流程时,有没有一种方法可以将其嵌入到流程中?我可能误解了您的问题,但如果没有,一种方法是将代码添加到Entity.tt中,并让您的类文件同时包含POCO类和验证类。它是生成的代码,如果调用代码中的intellisense之外的代码,您不必太多地引用它
或者,您可以向Revers
我有如下疑问
var email= (from c in dataContext.tblC
where (c.AA == aa)
select c.email).ToList();
string emails = email.Aggregate((a, b) => a + "," + b);
现在我需要另一个专栏SecEmail,我不能只是…选择c.email,c.SecEmail.ToList。
如果您正在使用动态对象,我可以得到任何建议
我有一个关于实体框架的问题,这里是相同的背景
我有三个实体Person、Office、PersonalAddress。Person表有一个从Office表到officeid的外键,PersonalAddress表有PersonaId作为外键。Personid是person表的主键
当生成Person实体时,我们将获得两个导航属性,一个用于office,另一个用于PersonalAddress。是否有一种方法可以通过代码确定person address引用person表的person id。所以,
调用SaveChanges时,对象上下文中有许多挂起的更改。其中某个实体的某个列的值太长。这将导致SqlException:字符串或二进制数据将被截断
问题是如何确定违规实体/列?< P> < P>您可以考虑使用和构建您的好友类进行验证。然后,如果用户的数据不正确,则向用户显示友好的验证错误
Imports System.ComponentModel.DataAnnotations
Namespace Domain
#Region "Validation"
<MetadataT
我试图找出一些只有EF4代码的东西。如果我使用TPH,并且我想将一个已保存的人员更改为讲师,或者反之亦然,我将如何实现这一点。我的POCO课程:
public class Person
{
public int PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Instructor :
我认为我有一个与TPH有关的问题。这是一个场景:
我们有一个名为“艺术家”的表,它有一些关于艺术家的属性(如名称、minibio等)和一个字节字段,用于确定艺术家的类型,其值如下:
1 - Singer
2 - Actor
4 - Composer
8 - Musician
16 - Director
请注意,同一位艺术家可能只是一种艺术家,也可能属于多个艺术家。让我们看一个例子:
+-------------------------------------------------+
| Ta
最终编辑:成功!有一个数据注释规则可以阻止空字符串被设置为null。我可以在这里使用解决方案()。现在很有魅力。我将保留我的帖子的其余部分,以防有人能从中吸取教训
决定重写这篇文章,尽我所能提供所有细节。长长的帖子,给出了所有的代码,所以请容忍我
我正在以EF4为基础编写一个MVC2项目。我的所有db列都不可为空
正如我之前所说,当我测试空表单的情况时,EF4抛出ConstraintException时,我遇到了一些问题。异常是从Designer.cs文件中出现的,特别是在以下代码中:
我觉得这应该有一个简单的答案,但我找不到
我有两个POCO:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Product
{
public int Id { get; set; }
public int CategoryId { get; set; }
}
请注意,两个POCO上都没有对象引用。对于代码优先
是否可以在不知道类型的情况下获取实体父实体的EntityKey和类型?我试着做了以下几件事
public partial class TestEntities
{
partial void OnContextCreated()
{
this.SavingChanges += new EventHandler(logChanges);
}
void logChanges(object sender, EventArgs e)
{
我有一些POCO课程,如下所示:
public class Inquiry
{
public Guid InquiryID { get; set; }
public Guid OwnerID { get; set; }
public User Owner { get; set; }
public string Title { get; set; }
public string Description { ge
假设实体框架,在懒散加载上下文中
我们有3个实体:
产品(包含许多订单详细信息)
OrderDetails(包含许多详细信息)
细部
下面的查询将显示名称为Books的所有产品。并向这些产品中的每一个加载所有的OrderDetails,其中OrderDetail.Quantity>5
var query = anEntityManager.Products.Where(p => p.Name == "Books")
.Select(p => new { Product = p,
我有一个奇怪的问题。在更新AS400表时,我遇到以下错误
错误[55019][IBM][AS]SQL7008N REXX变量“”包含不一致的数据
同样的代码在MSSQL 2008上运行得非常好
在互联网上搜索后,我发现当我在AS400上更新一个非日志表时,这个问题就出现了
为此,我必须启用该表的日志记录。这不是一个解决方案,因为我没有访问AS400服务器的权限
internet上提到的解决方法是在诸如INSERT、UPDATE、DELETE之类的查询中添加NOTNULL子句。在我的情况下,这是不
我想创建一个方法,它可以接受我可能更新的属性,而不去碰那些不感兴趣的属性
以下是我所做的:
public static void updateTable(int id, string field1, string field2, string field3){
using(var context = new Entities()){
var obj = context.Table.Where(x=>x.id == id).FirstOrDefault();
我使用的是EntityFramework4,我创建了一个UnitOfWork类,该类创建了我的上下文,并通过一个公共属性将其公开为IContext接口。
Context类继承自ObjectContext,并将我的Poco实体公开为公共属性,例如
public IObjectSet<User> Users
{
get { return _users ?? (_users = CreateObjectSet<User>("Users")
我有一个枚举,我想将它作为某种类型的值保存到底层数据库中,这样我就可以来回地使用它
我读过一些文章,建议使用定义的静态隐式运算符创建枚举包装器,并使用下面链接中描述的ComplexType对象映射进行映射
这个解决方案完美无瑕!谢谢你
除此之外,我还发现了通过实体框架处理枚举持久性的目的。我试过了,但似乎根本不起作用。这是一个代码示例
public enum StreetDirection {
East
, None
, North
, NorthEast
我不熟悉实体框架,所以如果这个问题看起来很基本,请原谅我。我想知道,是保存Entity Framework创建的上下文对象以便在应用程序上使用它更好,还是每次要访问/修改数据库时都应该创建一个新的上下文对象
为了以不同的方式表述问题,如果我过于频繁地创建上下文对象,会不会出现性能问题?或者,如果我在应用程序的生命周期内保持上下文对象的活动状态,是否会出现任何数据库问题(例如锁定数据库)?EF和Linq2SQL上下文都是为较短的生命周期设计的。
如果您正在为web页面提供服务,通常最佳做法是为每个
我有一个存储过程,它返回字符串值。
现在我必须从linq调用这个存储过程到实体查询,并将其结果存储到
我的复杂类型的字符串属性。
但是我得到了以下错误。
无法将类型objectresult隐式转换为字符串。
我的问题如下:
using (NeoSoftWindowApp_dbEntities objDatabase = new NeoSoftWindowApp_dbEntities())
{
ObjectParameter address = new ObjectParameter("
我想在SQLServer数据库上开发,并使用MySql进行生产
我已经使用SSMS图表创建了数据库,并在ASP.NET MVC项目中生成了ADO.NET Enity模型。然后,我修改了SQLServer中的连接字符串,使之指向MySql服务器,并专门将MySqlConnection对象传递给DbContext。现在我尝试执行下面的代码,但它抱怨提供的底层连接不是.NET Sql Server连接类型
dbContext.CreateDatabase();
您必须将MySql添加到web.con
在我的上下文文件中,我在Location类和Program类之间建立了多对多关系
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Location>()
.HasMany(u => u.Programs)
.WithMany(r => r.Locati
我继承了一个首先使用实体框架数据库的项目。我正在尝试在更新数据库时如何更新模型类,但我弄不清楚。到目前为止,我所做的是将一个名为Test的列添加到数据库中的一个表中,然后在模型浏览器中,我右键单击.edmx文件并从数据库中选择“更新模型”,然后按照出现的向导中的选项进行操作。现在,当我查看打开.edmx文件时呈现的数据库关系图时,我可以看到测试列已添加到表中。问题是相应的C#model类没有更新。我不认为我必须手动更新它,因为文件顶部有此消息
//------------------------
是否可以在代码中使用DbMigrator而不是通过powershell命令添加迁移文件?DbMigrator是用于运行迁移的类。用于创建迁移的类位于中工具外观由powershell命令调用。其他类代表用于创建迁移代码的低级API。谢谢!你能再详细一点吗?如何使用这些文件添加迁移?对不起,我是EF的新手。我从来没有尝试过,我只是给你们指出正确的课程。你必须自己找。您还可以检查以更好地了解其工作原理。
在从数据库更新模型时,是否有允许忽略sys表的选项?
在我的例子中,我总是有sysdiagram实体和相关的objectset
提前感谢。只需在对话框中取消选择您不想添加/更新的表:
这是您创建的时候。我已经有了模型,我需要从模型中排除实体的选项。在我的例子中,每次从数据库模型进行更新时都会显示系统图。我的意思是,每次运行“从数据库模型更新”时,它都会将所有表抓取到实体中。我不需要全部。我需要特定的实体生成。我不需要为数据库中的每个表生成实体。有什么方法可以标记它们吗?如果您删除设计器中的系统图
好吧,在花了无数时间在谷歌上搜索答案之后,我不得不在这件事上添加另一个问题
我有一个包含2个datetime字段的表,由EF4 EDMX designer在VS2010中生成
SQL 2008中生成的字段是datetime,而不是datetime2
查看edmx标记,字段的类型为datetime2
插入失败,存在已知的转换问题datetime2/datetime
我已手动将sql表上的字段更改为datetime2
还是不走运
我可能错过了一些东西,但我不知道到底发生了什么
我甚至尝试从设计器中重
我刚开始使用EF4,从v0.6开始使用NHibernate。我正在尝试模型优先的方法。我有一个包含两个子类的抽象基类,我想用TPH策略来持久化它们,但这似乎不可能通过设计器实现,因为似乎没有一种方法可以按照我认为应该的方式设置存储模型和映射。我似乎有以下选择:
手动编辑.edmx中的存储模型
让它使用TPT生成模式,修复该问题,然后更新模型并修复映射
我是否遗漏了一些明显的东西,或者我应该先恢复到db和/或希望代码优先的东西很快得到适当的发布。不幸的是,在model first中使用TPH创建新
我正在asp.net mvc应用程序(v3)和EntityFramework(v4)中使用存储库模式。
我想向存储库添加分页功能。我有以下示例代码:
public PagedResult<T> GetPaged(int offset = 0, int limit = PagedResult<T>.NoLimit, Expression<Func<T, bool>> predicate = null)
{
var r
有人可以帮我创建一个通用的GetByID方法,
这里的挑战是,我有很多实体,每个实体都有不同的PK名称
我看到了几个具有通用GetByID的示例,但其中许多都有相同的PK名称,如(id)
谢谢。这里是为具有单个属性键的实体构建存储库的基本存储库类的示例。GetByKey方法独立于键名或键类型
using System;
using System.Data;
using System.Data.Metadata.Edm;
using System.Data.Objects;
using Syste
以前,我在项目中使用了EntityFramework4.0CTP5(代码优先)和SQLCompact。我使用NuGet安装了以下软件包:
SQLCE.4.0.8435.1(版本4.0.8435.1)
(版本4.0.30319.0)
(版本4.0.8435.1)
现在,我想将所有库更新为最新版本。NuGet提要不再包含SQLCE.4.0.8435.1的任何更新,但它有一个新包“”(新包,而不是现有包的新版本)。假设它刚刚被重命名,我应该安装它。是这样吗?我想是的
NuGet也不包含“EFCodeF
我有一个先使用EF代码的解决方案。我最近将所有项目升级到4.3(使用NuGet)。然而,后来我发现另一个包()与该版本不兼容
因此,我决定将版本回滚到4.1.10715.0,这是我可以使用EFHooks的最新版本
当我编译应用程序时,一切都很好。我可以运行所有的测试,并且它们都通过了(单元测试、集成测试、数据库测试等)。但是,当我运行web站点(MVC3)时,它会给我一个运行时错误
无法加载文件或程序集“EntityFramework”或其
依赖项。。。版本=4.3.0.0等
我已经检查了所有的
我使用以下循环从联机数据填充数据库,如(简化,无错误检查):
代码需要一些时间从服务器获取XML响应,并使用XElement.Load on response stream将其解码为XElement。它被解码成一个项目列表,其中最多包含50个项目——这是我在每个循环过程中向服务器请求的。由于SaveChanges调用,该块会立即保存到表中
循环时间的8/10用于将项添加到DbContext或SaveChanges调用中,或用于两者。与远程服务器的通信和将响应XML解码为实体列表是2/10
如何提
我们模型中的大多数表都有一个名为“intConcurrencyID”的字段,我们打算将其用于并发检查。我认为在Database First环境中启用此字段进行并发检查的唯一方法是将并发模式设置为Fixed
但是,如果每个EDMX有大量的表,我们将很难手动配置每个实体的每种类型,更不用说可能会忽略某些实体
你对我如何使这个过程自动化有什么想法吗?T4模板似乎不是一个好办法,因为并发模式在CSDL中,而不是在代码隐藏中。我在更改属性的并发模式之前和之后查看了edmx文件,并提出了一个解决方案,作为控
如何在实体框架方法语法中应用此查询
select company_id, country_id from companies, departments where companies.company_id == departments.company_id and department.departmentId = 10;
到目前为止,我已经:
var company = context.companies
.Where(com => com.Departments
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 27 页