是否可以在EF4.0数据上下文上运行查询并获取特定类型的所有对象
假设上下文中有书籍、流派和作者,但我只有一个通用参数t。用这个t就可以得到所有的类型吗
我不认为是:(var x=from z in context.CreateObjectSet()中)
选择z;
我相信这会奏效
ObjectSet<T> set = (ObjectSet<T>)context.GetType().GetProperties().FirstOrDefault(p => p.Prope
我有一个实体框架模型,其中我有一个具有以下关系的用户:
User 1-* Test
Test 1-1 Course
Test 1-* TestEvent
每个测试都有以下关系:
User 1-* Test
Test 1-1 Course
Test 1-* TestEvent
我有一个返回用户的服务,在我的应用程序中的不同点上,我想急切地获取各种关系。我正在获取当前的所有关系:
var result = (from appUser in context.AppUsers.Include("
我有一个简单的测试项目,我正试图从VisualStudio单元测试框架转换为nunit。然而,我遇到了一个奇怪的错误
private VidRepository _repository;
//Setup the context before each test
[TestFixtureSetUp]
public void TestInitialize()
{
var fakeRepository = new FakeRepository(
我正在编写通过ID获取单个实体的方法:
public Customer GetCustomer(int i_CustomerID)
{
return (from c in context.CustomerSet
where c.Id == i_CustomerID
select c).SingleOrDefault();
}
public Movie GetMovie(int i_MovieID)
{
return (fro
我有一个拥有数百万条记录的层次结构。
我正在对数据库进行递归扫描,以更新一些连接和一些数据。
问题是,我得到了一个outofmemory异常,因为整个数据库最终被加载到上下文(lazy)。我不再需要的数据会保留在上下文中,而不会以任何方式删除它。
我也不能使用Using(context…),因为我需要上下文处于活动状态,因为我正在进行递归扫描
请把递归当作事实。
感谢这种操作实际上处理得不好,使用实体也不能很好地扩展。对于批处理操作,我倾向于使用存储过程
如果您确实想从上下文中删除/转储对象,我
我正在尝试为数据库中已知的实体创建一个POCO代理——类似于nHibernate Session.Load()
我想设置ID值,然后如果实体上有任何其他属性被访问,那么其他属性将被延迟加载——同样,类似于nHibernate Session.Load()
我尝试使用ObjectContext.CreateObject()创建代理,设置ID值,并将其附加到上下文。但是属性在被访问时不会延迟加载。但是,导航属性将很好地延迟加载
如果我需要一个实体并知道其ID,但不想强制额外的数据库点击来加载该实体,
我读了很多关于添加引用约束的示例和教程,但是我的设计器没有给我需要选择的FK。
我首先使用模型,我所有的ID都是GUID
这是两个实体:
这些是它们关联的属性:
这是参考约束对话框:
如您所见:没有可选择作为从属属性的FK。。。
数据库中有一个FK列,用于:
我做错了什么
Thanx因为您的实体没有任何FK属性。它将用作FK,并在“从属属性”下拉列表中选择它。它仅显示从属实体的现有属性 当我在设计器中创建关联时,不会生成这些属性,实际上我不想将它们作为属性公开。在这种情况下,您无需执行任何操作。
我想开发一个n层应用程序。在这里,我想介绍实体框架以及DAL层中的存储库、规范和工作单元模式。域对象应该作为自跟踪实体公开,并且在业务组件的顶部有一个很薄的WCF包装层
请给我举个例子
谢谢
Kawsar您可以创建作为数据服务基础的通用类:
class BaseDataService<T> where T : IYourModel or EntityObject
这个类实现常见的操作,如保存、获取项目、删除、获取
现在,您可以为域的实体创建一个继承自该基类的类:
class Fo
我更改了我的edmx文件,以便所有EF类都是内部的。在类中,所有属性都标记为public。项目已编译,但我在VisualStudio的“错误列表”窗口中收到错误消息
Error 6036: EntityType 'A' has 'internal' accessibility and EntitySet 'B' has a get property with 'public' accessibility. The get property of the EntitySet must not ha
我已经使用实体SQL实现了这样的查询。如何执行与相关实体的内部联接
我如何使用实体SQL或Linq to Entity来实现这一点?如果您不打算接受任何问题,我怀疑人们会花很多时间回答您。你当然知道这个网站是免费的,人们以0美元的价格为你提供宝贵的专业知识,你至少能做的就是投票并接受好的答案,对吧?对不起,伙计们,我早就应该这么做了。
使用实体框架CPT4是否有执行自定义命令或脚本的方法
例如:
_dbSet.Provider.Execute("Truncate Table Users");
FWIW;我将在单元测试的类设置中使用它,并将使用干净的数据来设置表。也许可以看看为单元测试设置和拆除数据库
编辑:
这就是我们在单元/集成测试应用程序中使用的数据访问层,它实际上是使用EF4实现的。它非常简单,提供了一种注入和清理可重复测试数据的好方法
但是,我们还需要使用EF删除/截断应用程序逻辑本身中的表。为了回答您最初的问题,
我必须执行一个删除,下面是一个我正在尝试做的简单示例
我会做类似的事情吗
DELETE FROM Customer
WHERE EXISTS
(SELECT TOP Address.AddressId
FROM Address
JOIN Customer ON Address.CustomerId= Customer.CustomerId
AND Address.AddressId='22'
AND Customer.Type=1)
有点迷失了如何使用实体框架来
是否有办法获得EF实体的外籍KeyDependent?您应该进一步解释您的问题。至少对我来说,还不清楚您要求的是什么?我想要获取实体所依赖的foreigns密钥System.Data.Metadata.Edm.EntitySet中有一个名为ForeignKeyDependents但被声明为friend的属性。
大家好,我需要在Linq中将这个SQL查询复制到实体
select * from Subscriber a
inner join User b on a.UserId = b.Id
where b.Username = 'Name'
也许有人能帮上忙。试试这个:
var query = from s in context.Subscribers.Include("User")
where s.User.Username == "Name"
这是这个问题的后续行动
是否有可能实现以下目标
表:富
PkId-int,主,自动增量
Bar-int,允许null=false,无默认值
现在,当从生成EF模型时
“栏”字段所在的数据库为
正确定义为null=false,Type=Int32
现在当我做下面的事情时
var foo=新foo;
context.addtofoooo;
上下文变化
该行已插入数据库,且“Bar”的值为0
我所期望的是一个应用程序级异常,因为从技术上讲,Bar并不是由应用程序设置的。其.Net默认值不会自动转换为
当我试图用循环引用(POCO)序列化实体框架类时,我收到了这个错误。无法序列化包含RelationshipManager的代理类
我尝试使用此处列出的“ToList()”方法,但仍然没有成功。有什么想法吗
下面是我收到的异常的一个例子
System.Reflection.TargetInvocationException was unhandled by user code
Message=Exception has been thrown by the target of an invoc
我想创建一个新的EF对象,它引用另一个对象(在我的示例中是aspnet用户ID),而不加载外部(键)对象
因此,基本上我想做以下工作:
buskerSet bs = new buskerSet();
bs.Title = title;
bs.Image = image;
bs.Created = DateTime.Now;
//The following will crash, because bs.aspnet_Users is null
bs.aspnet_Users.UserId = us
我有一个小型MVC 3应用程序,首先使用实体框架代码,并将此连接字符串用于模型:
data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Journal.mdf;User Instance=true;Database=MyJournal
当我对模型进行更改(例如添加属性)时,我得到了预期的结果
自创建数据库以来,支持“JournalContext”上下文的模型已更改
所以,在开发模式中,
我见过很多人在更新记录时使用:
...
ms.Status = status;
db.Entry(ms).State = EntityState.Modified;
db.SaveChanges();
这条线是必需的吗?我可以在没有它的情况下进行更新
db.Entry(ms).State = EntityState.Modified;
我想知道如果上下文已经知道它应该更新该记录,而您没有明确指定它,那么为什么还要显式指定它呢?如果您在实体中的更改是在EF上下文没有跟踪实体(实体已分离)的情况
我正在使用实体框架,我的数据库的结构如下:
一个用户有一组订阅者,所以
订户:
名称
用户ID
用户在用户对象上导航
如果我在没有用户的情况下获得订阅服务器,我会修改名称并提交更改,所有工作正常,但是如果我在CommittedRefreshChanges中获得用户实例化的订阅服务器,则会抛出我:
无法在具有唯一索引“PK\u Email”的对象“dbo.User”中插入重复的键行。\r\n语句已终止
但我不会为用户更改任何内容。。。我做错了什么
要获取我在存储库上运行的订阅服务器,请执行以下操作
我正在访问两个数据库。第一个是针对我首先使用EF模型连接的联系人数据库;创建edmx。在使用实体框架时,我开始学习代码优先的优点,因此我决定在同一个项目中,使用代码优先技术编写产品数据库,允许从我正在编写的代码生成数据库
一切都很好。当我点击我的线束,它试图创建产品数据库并从其中一个表中检索值列表时,就会出现问题
当我尝试枚举ProductLines属性(下面的第3行)时,出现以下错误“找不到'Core.Data.Account'的概念模型类型”
经过一些研究,似乎出现此消息是因为多个实体具有相
我使用这段代码是为了读取和更新数据库中的一个值,该值指示网站的页面浏览量
void Session_Start(object sender, EventArgs e)
{
intPageView++;
Session.Add("Online", intPageView);
DataLayer.MainFunction.UpdateOnlineUser();
}
public static void UpdateOnlineUser()
{
如果您有一个存储库接口,其中包括
T Add( T entity);
存储库不包含Save()或SaveChanges()。如果要返回“实体”,请使用:
我不希望这会影响数据库并自动生成标识值(自动递增)。两个问题:
假设ID是一个标识(自动递增)字段,那么它的字段中会有哪些值
当这确实保存时,我们能期望返回的对象中的标识字段自动更新吗
是否有一个命令可以从存储库外部的数据库更新对象引用
这是使用ASP.NET POCO Generator for Entity Framework 4和虚拟属
正在尝试将datetime字段的默认值设置为使用当前时间。在SQL的字段设计器中,我将使用getdate()。我应该在实体框架的设计器中使用什么
thx根据EDMX中的字段将“存储生成模式”设置为计算的
不过,您仍然需要SQL Server中的默认值,上面的设置将确保这一点。右键单击edmx,打开,选择xml编辑器,查找从2008年到2005年的“ProviderManifestToken”更改。保存。基于以下内容构建:
在EDMX文件中选择具有默认值的字段(在我的示例中为其创建)
转到属性面板
我将NCommon用于DDD层和实体框架
我想执行存储过程,但不确定如何执行。您可以在EF4中映射存储过程。它支持它。只需在设计器中添加所需的存储过程,并在代码中使用关联函数
当我试图在EF4中将一个集合映射到另一个集合时,我遇到了这个错误
无法设置类型“Resource_EF810770B4FCA2E071F38C2F2EE328AAC216CA2A7BF15753E6658A42D7CF53A”上的属性“ResourceLanguages”,因为集合已设置为EntityCollection
我试着这样编码
foreach (var resource in resources)
{
resourceLanguages = resourceLanguageRe
政务司司长
数据库存储=
看到一些例子:他们在哪里完成课程->在线课程和在线课程找不到它的c层
任何人都不知道如何在EF代码优先的方法中解决这个问题
问候
维奈。我处理这件事的方式是
删除抽象类,使其成为实体,然后对其余两个实体使用一对一映射
但是存储问题还是解决了,它创建什么类型的问题还没有解决。您无法获取要遍历的列表
找到古鲁解释的链接:
但是我该怎么做呢。代码优先方法?
欢迎任何想法。以下内容仅通过声明一个表头就解决了这个问题
public abstract class Cu
我认为EF DataMigrations的目的是在更改数据库结构的同时保留旧数据。我认为对吗?但是当我用迁移更新数据库时,所有的旧数据都被删除了
我是否犯了错误,或者在这种情况下不可能使用数据迁移
这是DbContext:
public class CodeFirstContext : DbContext
{
public CodeFirstContext() : base ("ZenRandevuIzle")
{
}
public DbSet<Us
我现在正处于一个新应用程序的设计阶段,正在做一些研究。我遇到了EF4.3的CodeFirst方法,并且非常喜欢它
然而,有一个设计目标,我不知道如何实现
假设我有一个任务类:
public class TaskModel
{
public int ID { get; set; }
public string Name { get; set; }
public TaskType Task { get; set; }
}
是否可以对对象执行分组方式
from item in context.Items
group item by item.MyObject
select ...
其中Item.MyObject是一个简单对象,例如:
public class MyObject {
public int SomeValue { get; set; }
public string SomeName { get; set; }
public string SomeOtherProperty {
我想使用以下方法来标记Person表中的人员,以便对其进行处理。必须将这些人标记为“进程中”,以便其他线程不在同一行上操作
在SQL Management Studio中,查询按预期工作。当我在我的应用程序中调用该方法时,我会收到该人员的行,但状态为旧
Status是Person的许多导航属性之一,当此查询返回时,它是作为代理对象返回的唯一属性
// This is how I'm calling it (obvious, I know)
var result = PersonLogic.Get
据我了解。在数据库中,EF的第一个模式。我们可以通过一些模板为实体类生成代码。例如T4模板、DbContext生成器模板等,但我也可以在Designer.cs文件中找到相同的实体类定义。这是我的问题
EF代码生成器的用途是什么?Designer.cs文件具有所有定义良好的实体类。是否需要逐个生成实体类代码
EF中有多少个模板?他们之间有什么区别
EF power工具允许您为现有数据库生成代码优先实体
与数据库优先(EDMX)方法不同,您使用这种方法的原因是,从现在开始,您希望使用代码优先来管理数
我有以下几种型号
public class Site
{
public int Id { get; set; }
public string SiteName { get; set; }
public string SiteUrl { get; set; }
public IEnumerable<SiteBrand> SiteBrands { get; set; }
}
public class SiteBrand
{
public int
我正在使用EF DbContext SqlQuery使用PagedList()获取分页对象的列表,出现以下错误:
“SqlParameter已包含在另一个SqlParameterCollection中”
以下是我的存储库代码:
var db = (DbContext)DataContext;
const string sqlString =
@"
WITH UserFollowerList
我是实体框架的新手。有人能解释一下为什么我们在实体框架中使用并发检查属性吗
提前感谢。当多个用户同时更新实体时,这是一种处理数据库更改冲突的方法。添加ConcurrencyCheck属性意味着您正在告诉
实体框架使用该属性检测并发冲突。实体框架在数据库的UPDATEs或DELETEs中包含属性
对于具有许多列的数据库表,这可能意味着非常大的WHERE子句,这可能会影响性能并需要管理大量状态。对于较大的数据库,首选行版本策略
[表(“账户”]
公共类帐户
{
公共帐户(){}
[关键]
publi
我有一些需要克隆POCO实体图的逻辑,为此,我为每个T4生成的自跟踪实体创建了分部类,并在每个实体上实现了IClonable。每个实体都可以克隆自身,并在导航属性中遍历其所有子实体,并对每个子实体调用clone(),然后最终返回自身的克隆实例,并添加克隆的子实体。因此,这是一个深层次的克隆,效果很好。在克隆树中,所有实体都处于添加状态,这是有意义的…因为克隆图都是新实体
克隆进程在实体上下文中克隆服务端,虽然克隆进程本身不进行数据访问,但克隆是在从数据库中新检索到的图形上执行的(如果有更好的方法
我有两个问题:-
我无法获得标准和主题之间的外键关系,它表示该关系将导致多个级联删除路径
如果我在test和usedetail之间进行外键映射,它会给我上述映射tst_问题表的问题
另外,由于我是EF代码的新手,请指出我的错误。欢迎所有帮助和讨论 默认情况下,EF将创建外键,并将级联删除。在您的模型中,如果删除标准,则有多个路径可删除问题描述符
标准->问题描述符
及
标准->主题->问题描述符
这就是SQL server不允许您这样做的原因。看
您可以做的是明确地告诉EF创建外键,而不使用ca
尝试迁移现有的EF4.2项目以使用存储库和工作单元模式。在许多人的示例中,我看到他们使用存储库中的DbSet集合,但对我来说,这似乎是有限的,因为我不能使用.Include()之类的东西。然后,还有其他使用DataContext的示例(如此示例)
所以。。。我不想使用DataContext有什么原因吗?您可以使用Include和DbSet。您应该在存储库中引用DbContext(通过构造函数将其传递给存储库实例),因为更高级的操作需要它。存储对DbSet的引用只是简单化/优化,以避免每次要访问上
我有几个类(无论如何在本例中)首先使用实体框架中的代码连接到数据库
public class Customer
{
[Key]
public long CustomerId { get; set; }
public string CompanyName { get; set; }
...
public virtual List<Contact> Contacts { get; set; }
}
public class Contact
{
我正在努力使实体框架项目更具可伸缩性,以满足我们的需求。该项目使用EDMX文件、实体框架和.NET 4.0。项目已全局设置延迟加载
基本上,我有两个表:
Product
ProductId
ProductVariant
ProductVariantId
ProductId
我的情况是,对于给定的产品,ProductVariant中将有数十万个相关行。因此,我想删除ProductVariant的导航属性,并进行查询以仅查找最相关的数据,而不是所有相关数据
但是,大多数代码的作用如下
在引用SELF时,使用EF代码首先要控制泛型列的名称。尝试了[ForeignKey]和[Column]属性[Column]不起作用,并且[ForeignKey]强制建立似乎会导致问题的关系。我使用了[ForeignKey]属性来设置连接到此类/表的另一个类/表中的列的名称
有
公共类剧集
{
公共长ID{get;set;}
//……其他财产
公共列表子项{get;set;}
}
想要一个表(ID,…,ParentID)-获取一个表(ID,…,插曲ID)如果在实体类中没有将外键列作为属性公开,则
Im首先使用实体框架4和代码。我有一个模型,我希望能够根据配置文件将此模型映射到数据库中的不同表
示例模型:
public class Statistic
{
[Key]
public int id { get; set; }
public string jobName { get; set; }
public DateTime date { get; set; }
public int pages { get; set; }
}
每个客户都有一个配置
我正在使用VS2010、实体框架4.0和Advantage v。10在我的申请表中。我编写了一个LINQtoEntities(L2E)语句,试图将可为空的数字(decimal)类型转换为十进制。一个简单的语句可能如下所示:
var x = (from test in entities.Tests
select test.ValueA.HasValue ? test.ValueA.Value : 0);
但是,我收到以下错误:
System.Data.EntityCommand
我有一个与此类似的实体框架模型:
人
员工(继承人)
联系人(继承人)
我可以毫无问题地添加、查询(使用OfType)和更新员工和联系人。但是,我无法确定Person对象的类型。比如说:
var person = entities.People.Single(p => p.Id == 5);
我如何做到这一点:
if (person.IsEmployee){
//do something
} else if (person.IsContact) {
// do something el
我在这行代码中得到了这个错误-
ReportRunnerEntities reportDB = new ReportRunnerEntities();
public ActionResult Index()
{
**var types = reportDB.ReportTypes.ToList();**
return View(types);
}
数据库中的表定义了主键并设置了标识
我的模特是-
namespace Report
我正在使用EntityFramework4.0从asp.net调用下面提到的代码。我有一个地址表,需要在其中插入一些数据。我的代码是:
IRepository<Address> addressRepository;
int addressHOCODE = 0;
try
{
**addressRepository = ObjectFactory.GetInstance<IRepository
是否可以先使用实体框架代码进行以下映射
public class Parent
{
[Key]
public int ID {get; set;}
public string statecode{get; set;}
public virtual ICollection<Child> children{get; set;}
}
public class Child
{
[Key, Column(Order = 0)]
pub
当我首先使用Entity Framework Power Tools CTP1提供的反向工程代码时,是否有任何方法为我的数据库中的存储过程生成类?否。如果您想让代码用于调用任何工具生成的存储过程,请使用EDMX和数据库优先方法。否,它不会为您生成,但会使用只要稍加努力,就可以将它们整合起来。
您只需从表中生成,然后在存储库层中返回一个实体:
public Customer GetById(int id)
{
return_context.D
在这里询问之前,我试着用谷歌搜索它,但我找不到任何解决方案
我有这两个类和一个一对多的映射
我正在尝试附加一个新对象
public class MyContext : DbContext
{
public IDbSet Operacoes { get; set; }
public IDbSet Apontamentos { get; set; }
}
public class Operacao
{
public s
我使用的是实体框架4自跟踪实体模板(STE)和SQL Server CE。我看到一些非常奇怪的行为。如果我只是插入或更新、删除,一切都很好。但是,如果我插入一个对象,然后对其进行更新,则在执行更新时,将为该对象生成一条update和insertSQL语句(见下文)
我正在使用一个存储库模式,并且我将存储库和它为每个调用包装的ObjectContext,因此更新使用一个新的ObjectContext。还请注意,如果我重新启动服务器,对象的更新工作正常,因此只有在插入了对象的情况下才可以
由于我正在
1 2 3 4 5 6 ...
下一页 最后一页 共 26 页