我有一个具有此结构ID PK的表和两个具有FK的列,例如ActivityID和ContactID。
我尝试以编程方式在这两个FK列中插入一些值。
我怎样才能做到这一点,需要任何帮助。Tnx我认为最好的解决方案是去掉主键,将ActivityID和ContactID的组合设置为PK,然后在visual designer中重新创建整个模型。每个活动对象将具有联系人导航属性,每个联系人将具有活动。您可以通过拨打以下电话向活动中添加联系人:
activity.Contacts.Add(contact);
是否可以创建多个实体作为一个主表的“视图”?让我解释一下
假设我们在数据库中有一个非常大的表,名为Foo,我们不允许更改该模式
Foo ( Key1, field1, field2, field3, field4, field_n )
我们想从Foo创建3个updateble实体类型
FooLite ( Key1, field1 )
FooAlt ( Key1, field2, field3 )
FooAlt2 ( Key1, field4 )
即使我们从头开始重建层次结构,继承也不起作用,
在尝试规范化数据库模式并将其映射到实体框架中时,我发现可能最终会出现一堆查找表。它们最终只包含键和值对。我想将它们合并到一个表中,该表基本上有两列“Key”和“Value”。例如,我希望能够将Addresses.AddressType和Person.Gender都指向同一个表,但确保导航属性仅返回适用于相应实体的行
编辑:哎呀。我刚刚意识到我遗漏了这一段:
这似乎是TPH类型的问题,但我所做的所有阅读都表明您从父实体中的字段开始,并将字段迁移到继承的子实体。我没有任何字段可以移动到这里,因为通常
我有一门课是这样的:
class ClassA
{
public long classAID {get; set;}
public string Description {get; set;}
public IEnumerable<ClassB> ClassBs {get; set;}
}
class ClassB
{
public long classBID {get; set;}
public string SomeOtherDescr
我犯了个错误
ObjectStateManager中已存在具有相同密钥的对象。
ObjectStateManager无法跟踪具有相同属性的多个对象
钥匙
在谷歌搜索之后,我在那里找到了IsAttachedTo扩展方法:
这是我的密码:
foreach (string s in types)
{
Subscription subscription = new Subscription { Id = Int32.Parse(s) };
if (service.reposit
我有一些这样的代码:
var db = new MYContext();
var invoice = new Invoice { InvoiceId = 7 };
db.Set<Invoice>().Add(invoice);
var invoiceFound = db.Set<Invoice>().Find(7);
var invoices = db.Set<Invoice>().ToList();
var db=new MYContext();
我读过其他一些帖子,但都没有帮助
CarPart是一个EF4 gened类
[EdmEntityTypeAttribute(NamespaceName="xxxx.Data.Domain.Model", Name="CarPart")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class CarPart : EntityObject
{
#region Factory Method
我正在构建一个需要使用谓词的搜索。然而,每当我运行下面的查询时,我仍然只得到最后一个谓词的结果。第一次试验的结果不包括在内。根据我下面的问题,谁能给我指出正确的方向
var _predicate = PredicateBuilder.False<TBLDESIGN>();
_predicate = _predicate.Or(a => (a.KEYWORDS.Contains('red') || a.NAME.Contains('red')));
_predicate =
我有以下课程:
public class Parent
{
public ICollection<Child> Children {get;set;}
}
public class Child
{
}
public class Boy : Child
{
public Toy Toy {get;set;}
}
public class Girl : Child
{
public Book Book {get;set;}
}
公
我有点困惑:随着EF的发展,我不知道我现在在哪里
*EDMX是否是过去的选择,是否应该继续使用?
*如果是这样,最好的选择是什么?
*我讨厌edmx,我可以先升级到代码吗
现在还不清楚这些EF版本对我来说是什么
谢谢
Jonathan对于许多应用程序,如果您愿意,可以先开始使用代码。CodeFirst还不支持的一件大事是映射到存储过程。(您仍然可以调用存储过程,但不能将实体CRUD操作映射到它们。)
也就是说,使用EDMX首先创建数据库仍然是绝对受支持的,也是一个不错的选择,特别是您喜欢使用EF
我正在使用EF,并且有一个上下文,通过上下文上的ExecuteStoreCommand函数使用简单的SQL调用删除了表中的一行(出于其他原因,我必须这样做)。它工作正常,但上下文不知道发生了什么
稍后,当我尝试提交某些更改时使用相同的上下文时,我会遇到一个问题,因为提交没有给出预期的受影响行数
我的问题是,用我所做的更改(删除的行)更新上下文的最佳方式是什么
我已经尝试获取已删除的对象并在上下文刷新函数中使用它,但它并没有真正起作用,可能是因为它(正确地)在尝试获取已删除的对象时获取空引用
_c
好吧,我觉得问这个问题有点愚蠢,但我想我对实体框架的内部工作机制缺乏理解
我想尝试使用DbContext。我有一个使用EF4.2的现有ASP.NET MVC应用程序。我可以使用以下方法获取实体:
var context = new MyEntities();
这个很好用
但是我怎么才能得到由DbContext表示的相同数据呢?所以我猜您使用的是EDMX designer提供的默认代码生成器-它将使用ObjectContext和基于实体的重载EntityObject
如果要使用DbContext
当我在MVC4操作方法中使用以下代码时,我得到的错误就在下面:
var role = _roleRepository.GetByName(model.RegistrationType.ToString());
var mr = new MemberRole();
mr.Priority = int.MaxValue;
mr.IsActive = true;
entity.MemberRoles.Add(mr);
role.MemberRoles.Add(mr);
_roleRepository.
更新:
公司可以有多个项目,公司也可以有员工。员工只能有一个公司,项目也只能有一个公司。
一个项目有几个任务。
在这些任务中,员工将仅被分配到部分任务
只能为员工分配他/她被分配到的项目的任务
请回顾以下内容,并帮助我如何创建数据库设计和最终的实体模型
根据这两条评论更新了图表:
如果这个ER图看起来不错,请您提供关于如何创建EF 4.1实体类的指导,特别是对于EmployeeProjectTasks表我是EF 4.1代码的新手,希望了解创建这些类的一些指导
如果此ER图看起来不正确,请建议修改
可能重复:
我在EF 5中使用自定义ID生成策略。我覆盖SaveChanges方法来检测添加的实体并设置它们IDs。但是新实体的ID只有在调用SaveChanges后才能访问。我搜索了这么多,找到了一些答案。和。在第二个链接中,显示了一种检测似乎有效的更改的方法。但它只投了一票,没有被接受。我可以使用@KVerwold建议的方式吗?你认为这可能会导致任何错误-逻辑或任何错误或您还有其他建议吗?提前感谢。我建议,除非对自定义ID有强烈的业务需求,否则不要实现它们。我认为你提到的帖子只有一票赞成,
a) 域实体不应该包含与持久性相关的代码,因此它们应该是持久性无关的PI。但假设域模型DM是使用实体框架设计的,并且假设服务层通过Linq to entities对POCO域实体执行CRUD操作,我们会认为服务层直接或通过域模型访问DAL:
b) 对DM中的实体使用Linq是否违反PI规则?例如,以下客户实体是否违反PI:
class Customer
{
public string InterestedWhatOtherCustomerOrdered( ... )
我首先使用EF的代码和“流畅”的API。它会自动映射实体的属性和导航属性
我在这些类中有很多行为和其他属性,因此在这种情况下需要调用Ignore()
我是否可以更改它,使其仅映射我使用fluent API显式指定的内容?我想采用白名单方法,而不是目前的黑名单方法。我认为这在EF5中是不可能的。您可能会对反射进行一些黑客攻击,将所有属性配置为忽略,然后覆盖不希望忽略的属性的配置。自定义约定又回到了EF6中(http://entityframework.codeplex.com/SourceCont
这是我的模型:
public abstract class Entity
{
public long Id { get; set; }
}
public abstract class Audit : Entity
{}
public class UserAudit : Audit
{
public virtual User User { get; set; }
}
public class User : Entity
{}
以下是我的DbContext:
public c
模型如下所示:
客户(型号)
-订单(型号)
--产品(型号)
---颜色(型号)
-姓名(物业)
在列出产品的详细信息时,我想显示客户的名称(名称是模型客户的属性)
我使用的代码是
db.Products.Include("Order").Include("Customer").Include("Color").Where('my where query')
我收到的错误消息是,产品没有Customer的导航属性。如何获取产品的属性
我正在将实体框架4.3.1与SQL Azure后端一起使用
我在连接了2个实体的上下文上调用saveChanges。实体“A”接收其值的更新,“B”不会更改
当我在SaveChanges之前暂停行上的代码,并检查“B”实体时,它会显示“EntityState=Unchanged(2)”
我让代码完成运行,最后执行映射到“B”实体的更新的存储过程
我以为这不会发生,为什么
谢谢
戈德
EF 4.0.30319我怀疑这个问题是重复的
重复上面给出的答案:
这是一个发生在以下情况下的问题:
在.NET Framework 4.0版上运行实体框架
使用自定义映
我正在尝试更新生成服务器上的数据库,但它失败了,因为它正在尝试运行自动迁移,即使它们已被禁用。数据库已经存在,我只需要应用最新的迁移。以下是我的背景:
public sealed class Configuration : DbMigrationsConfiguration<CableSenseInstanceConfiguratorContext>
{
public Configuration()
{
AutomaticMigrationsEnabl
我必须去
class Patients
{
/**
* @ORM\OneToOne(targetEntity="ContactAddress", mappedBy="patients")
*/
protected $contactaddress;
}
还有一个
class ContactAddress
{
/**
* @ORM\OneToOne(targetEntity="Patient
我首先使用EF代码,并使用EF 4.X DbContext Fluent Generator T4生成代码,因此现在我有2个poco实体(我将列表更改为BindingList以在winForms中使用绑定):
在我的数据库上下文中,我有以下代码:
public partial class MyContext : DBContext
{
static MyContext()
{
Database.SetInitializer<MyContext>(nu
我有这样的代码:
User rValue = null;
var userByID = new Func<User, bool>(x => x.UserId.Equals(userID, StringComparison.InvariantCultureIgnoreCase));
if (this._context.Users.Any(userByID))
{
var user = thi
我试图先用这些类和EF代码将数据添加到数据库中。填充对象并尝试填充上下文dbContext.Tracks.Addt1之后。我遇到错误,无法将'System.Collections.Generic.HashSet'1[Vinyl7]'类型的对象强制转换为'Vinyl7'类型。有人能指出我缺少什么吗
Public Class Vinyl7
<Key>
Public Overridable Property mediaId As Long
Public Overr
我有一个错误:“错误0114:关系约束中从属角色和主体角色中的属性数必须完全相同。”
public abstract class UserBase
{
[Key]
public Guid Guid { get; set; }
[Required]
public string Name { get; set; }
}
public class User : UserBase
{
我正试图找到正确的语法来为数据库添加测试数据。我的产品表有一个外键。这是一个类别。我已经在数据库中植入了类别的值,但仍停留在如何将这种关系添加到产品中。我试过这种方法,但没有用
context.Categories.AddOrUpdate(x => x.Name,
new Category
{
Name = "Fruit"
});
context.Products.AddOrUpdate(x => x.Name,
new Produc
如何指示EF不删除一个多个关系,而是级联删除集合
i、 e:
公共类客户端
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共阶级秩序
{
公共int Id{get;set;}
public int ClientId{get;set;}
[外键(“客户ID”)]
公共客户端{get;set;}
公共ICollection OrderItems{get;set;}
}
公共类OrderItem
{
公共int Id{get;set;}
公共int-OrderId
这是我的连接字符串:
<connectionStrings>
<add name="OL4RENTDb"
connectionString="Server=v812xrqz2w.database.windows.net;Database=ol4rentDB;User ID=AdminOL4RENT@v812xrqz2w;Password=Grupo501TSI;Trusted_Connection=False;Encrypt=True;MultipleActi
我使用的EF6 rc1采用代码优先策略,没有预编译视图,问题是:
如果我编译并运行exe应用程序,运行第一个查询大约需要15秒(没关系,因为我仍在处理预生成的视图)。但是,如果我使用Visual Studio 2013 Preview调试完全相同的应用程序,则在运行第一个查询之前需要大约2分钟:
Dim Context = New MyEntities()
Dim Query = From I in Context.Itens '' <--- The debug takes 2 minut
我有两个班级联系人和小组
FirstName和LastName的组合必须是唯一的,并且可以为单个联系人添加多个地址。如何在实体框架代码优先的方法中做到这一点
public class Contacts
{
[Key]
public int ContactID { get; set; }
[ForeignKey("Group")]
public int GroupID { get; set; }
[Required]
public string Fi
我试图找出如何在这两个类上定义代码优先导航属性,以执行类似于此查询的操作:
SELECT USERID, FIRSTNAME, LASTNAME, COURSEID, NAME
FROM User
LEFT OUTER JOIN Course ON User.USERID = Course.USERID
WHERE COURSEID = 1
所以我试图找到一个用户列表,以及他们是否参加过某个课程
public class User
{
public int UserId {get;se
今天我发现TFS不能很好地处理T4生成的类。我更新了实体框架&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash。模板删除并重新写入所有.cs文件。然后TFS似乎跟不上,认为它们都被删除了
当我查看挂起的更改并尝试撤消时,TFS抱怨说文件仍然存在,如果要撤消,我需要先删除本地文件
我原以为我们可以从TFS中排除生成的文件,但我不确定这是否适用于自动构建环境
希望有人能更好地了解Breeze的扩展实体,因为我被难住了!因此,我在服务器端(使用Breeze的API的Web API)创建了一个分部类(WO_Rout),并创建了一个名为“AssetJobEqNo”的属性
我已经阅读并遵循Breeze的文档,但没有结果。按照指南,我为这个特殊实体“WO_Rout”创建了一个构造函数,如下所示:
当我查询我的控制器时,这个特定属性“AssetJobEqNo”被发送并在客户端的JSON原始结果中看到
所以…这是我无法理解的奇怪部分。如果我在UI上运行一个绑定到按
我一直想找到这个,但运气不好。假设我有一个数据库,有两个表,person和address
table person
id int
name varchar(50)
addressId int
table address
id int
street varchar(50)
country varchar(50)
在我的数据层中,我有一个针对Address的业务对象,它向外部调用者公开。我找到了一个表达式,可以用来在SQL级别集中创建代码。这样我就不用写了:
db.Address.Select(
使用:VS 2013,实体框架代码优先,ASP.NET Web项目MVC
我有两个型号,一个需要两个FK用于同一张表:
public class A
{
public int Id { get; set; }
public string Name { get; set; }
}
public class B
{
public int Id { get; set; }
public int Id1 { get; set; }
[ForeignKey("
这是我关于堆栈溢出的第一个问题,所以我会尽量精确。
这是我的模型:
namespace GRHMeca.Models
{
public class Projet
{
[Key]
public int ID { get; set; }
[Required]
public String Nom { get; set; }
publ
我们将处理一个可以从各种设备上使用的应用程序
我看到了从哪一层到哪一层的流程图
我试过一个,如果我错了,请纠正我,任何清晰的评论我都会尽量表达自己
查看控制器模型(域对象)BLL WEB-API DAL(EF 6.0)MDS(主数据上的服务)
我不确定我是对的还是错的任何更正都将受到赞赏。我感到困惑,在哪里保存BLL?我可以在DAL内部的实体框架中使用mds吗?我还需要创建单独的层吗?我很困惑
分享您的想法:)Ty我认为Web API组件放错了位置-它是生成/处理UI请求的UI元素?是否应该在视
我正在多租户环境中使用Web API。每个租户都有自己的数据库,具有相同的结构。租户名称作为子域包含在URL中:http://{tenant}.mysite.com/api/doodad/action
我编写了一个消息过滤器(DelegatingHandler)来提取租户名称并找到相应的数据库。我目前正在请求参数中存储此值
几乎每个控制器操作都需要访问指向此数据库的DbContext。我没有使用存储库模式。我在DbContext上创建了第二个构造函数,它接受数据库名称
我使用Unity在Apic
我正在尝试开发实体框架类,该类将定义一个已经创建并填充的.mdf数据库,最终实际创建并填充它
错误:
在模型生成过程中检测到一个或多个验证错误:
testclass.test::EntityType“test”未定义键。定义此EntityType的键。
testData:EntityType:EntitySet“testData”基于未定义键的类型“test”
代码:
使用System.Data.Entity;
命名空间测试类
{
公开课考试
{
公共int idt{get;set;}
公共字符
我们正在使用EF6和code-first方法。对于记录的版本控制,我们使用映射存储过程
这对更新非常有用,因为我们传递了所有值,包括:ModifiedBy和ModifiedOn
现在,更新存储过程只接受Id。
我可以使用[ConcurrencyCheck]属性将ModifiedBy添加到过程中。对于删除操作,此操作有效,但它使我的更新失败
有没有一个好方法可以向删除存储过程添加更多参数?虽然这已经3个月了,但直接回答您的问题,我认为更新失败了,因为您忘记将@ModifiedBy_原始参数添加到更
我有一个项目类,它包含:
int ProjectID;
string ProjectName;
List<Item> Items;
int ItemID;
int? ParentID; // ID of Parent Item
string ItemName;
List<Item> Items;
int投影;
字符串ProjectName;
清单项目;
我有一个item类,它包含:
int ProjectID;
string ProjectName;
List<
我正在使用ASP.NET核心和实体框架7。我有一节甲板课和一节纸牌课。我正在尝试创建一个代码优先的数据库,它具有多对多关系和一个额外的字段计数。这是我的密码
甲板等级:
public class Deck
{
public int DeckId { get; set; }
[Required]
[MinLength(8)]
public string Name { get; set; }
public string Description { get; s
我无法更新任何属性的任何属性名称或数据批注
这里是代码
类:
public class Student
{
public Student()
{
}
[Key]
public int StudentID { get; set; }
public string StudentName { get; set; }
public DateTime? DateOfBirth { get; set; }
public byt
我在WPF的窗口中有一个列表视图。它绑定到实体框架,并具有类型为List的ItemsSource。此窗口调用高级搜索窗口并从中获取大字符串筛选器
这里有一个简单的输出过滤器:
([barcode] like 'bar12%' and ( [isParent] = 'True' and ( [Name] like '%pr%')) and ( [Group] = 'A' or ( [Group] = 'B')))
注意:输出过滤器是动态的,可能会变得非常复杂
使用这个大过滤器哪种方式更
目前,我使用数据库优先的方法,使用数据库中的EF设计器对数据库进行反向工程,以生成具有多重化的EDMX文件。然后,我使用设计器生成与C兼容的名称,然后生成相应的POCO。更新一个表有点痛苦,但在维护EDMX中已经创建的ORM映射时,这是可能的
我知道EF的未来版本将不再支持EDMX文件
如何继续使用EF将数据库字段转换为C#complient对象(例如,表名的PASCALCING和表属性的camel大小写)的数据库优先方法?即使没有设计器支持,您仍然可以对现有数据库进行反向工程。事实上,我们已经
当容器中只注册了一个子类时,是否可以解析父对象
这是我的案子。我注册了从DbContext派生的MyDbContext
services.AddDbContext<MyDbContext>(options =>options.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly)));
目前,我得到上述代码为
我在我的LINQ查询中使用GroupBy。我的查询工作正常,只是缺少外键对象。然后,我尝试在我的查询中添加Include。以下是我的代码:
public ActionResult GetEmployees()
{
var Emloyees = db.Employees.AsQueryable();
Emloyees.GroupBy(e=> new {e.JobTitleId, e.GenderId})
.Select(tr => new
我正在执行一个复杂的实体框架select查询,我想排除“ThenInclude”对象中的一个特定列
我试图在StackOverflow中找到一个解决方案,但没有人真正适合我的复杂查询
以下是查询:
// topLevelId is given when we get here
await this.Context.TopLevel
.Include(c1 => c1.Child1)
.Include(c2 => c2.C
我希望此联接表具有2个外键,但也添加了一些其他属性:
[可序列化]
公共级食品杂货店
{
[键,列(顺序=0),必填]
public int GroceryItemId{get;set;}
[键,列(顺序=1),必填]
public int GroceryStoreId{get;set;}
公共虚拟杂货店项目杂货店项目{get;set;}
公共虚拟杂货店杂货店{get;set;}
[必需]
public int NotInEstablishmentCount{get;set;}
[必需]
pub
1 2 3 4 5 6 ...
下一页 最后一页 共 365 页