我正在我的项目中使用EF7 rc2。有两个相关的类
public sealed class Member
{
......
public MemberState State { get; set; }
}
public sealed class MemberState
{
public Guid Id { get; set; }
public Org Org { get; set; }
....
}
和EF配置:
modelBuilder.Entity<MemberState>(entity =>
{
entity
最近,我又回到了企业应用程序的NHibernate与EF5的问题上。我知道许多重要的区别,但这一点对我来说是最令人惊讶的。考虑两个经典实体,Customer和Order (1:n):
public class Customer
{
public Customer()
{
Orders = new HashSet<Order>();
}
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
**public virtual ICol
假设您有一个ticket表和一个status票证。其定义如下:
CREATE TABLE `priorities`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` INT NOT NULL,
constraint `priorities_id_primary` Primary key (`id`)
);
CREATE TABLE `tickets`(
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`subject` VARCHAR(255) NOT NULL,
在EF6中,我们有两种方法来声明两个表之间的关系:
注释属性
Fluent API
今天(偶然)我去掉了两张桌子之间的一段关系,一切都很正常。我很惊讶,因为EF不可能知道这两个表是如何连接的。
表如下所示:
[Table("item")]
public class Item
{
public Item()
{
ItemNotes = new HashSet<ItemNote>();
}
[Key]
[Column("itemID", TypeName = "int"
假设我有这样的场景:
Table Bar
Id int not null
Name string not null
和
Table Foo
Id int not nul
BarId int foreign key (Bar) references Id
当我尝试删除在Foo中有引用的Bar时,为什么EF试图更新Foo设置为空的Foo?
当有人试图将NULL设置为Bar时,我对我的属性进行了验证,当EF试图更新Foo时,我得到了这个错误。
如果我尝试删除一个查询,比如“从foo中删除id = 1”,我会得到:
The DELETE statement conflicted with the RE
我在一个项目中使用EF,它有一个我一直在使用的数据库。我有两个具有奇数映射的表(我相信它是0-1到多)。部分问题是字段中可能有垃圾,所以我希望可以从nav属性中获得null。
TruckPart可以可选地与部件相关。一个部件可以与0或更多的卡车部件相关(尽管我不需要沿着这个方向遍历这个关系)
我有我的EF接近,除了当我拉关系通过一个包含(“部分”),它使用一个内部连接,我需要它使用一个左连接。
课程:
public class TruckPart
{
public int TruckPartId { get; set; }
public int PartId { get; se
使用EF代码首先要在引用SELF时控制生成的列的名称。已尝试[ForeignKey]和[Column]属性。[Column]不起作用,[ForeignKey]强制建立一种似乎会导致问题的关系。我使用[ForeignKey]属性来设置连接到这个类/表的另一个类/表中的列的名称。
有
public class Episodes
{
public long ID {get; set;}
// ... other properties
public List<Episodes> Children { get; set; }
}
想要一个表(ID,...,Paren
在我的EF6代码优先模型中,我有以下类:
class User : IdentityUser // so it has public string Id!
{
public virtual long ItemId { get; set; }
public virtual Item Item { get; set; }
}
class Item
{
public virtual long Id { get; set;
public virtual string UserId { get; set; }
public virtual User User {
在EF 6.1.3中,我很难找到正确的方法来映射我的客户/个人类。
public class Client
{
public int ClientId { get; set; }
public int PersonId { get; set; } // FK
// Navigation Properties
public virtual Person Person { get; set; }
}
public class Person
{
public int PersonId { get;
我正在从Linq到-SQL迁移到实体框架(4.4),首先使用数据库和DbContext。我想知道以下行为是否正常:
using (var e = new AgendaEntities()) {
var store = e.Stores.First();
var office = e.Offices.Create();
office.Store = store; // Set association
Console.WriteLine(office.StoreID); // shows Guid.Empty, expected store.ID!
}
在L2S中,
我正在迁移一个软件从EF 6到EF核心。在测试期间,我注意到在如何解释Linq方面存在差异。
我的Linq
app.Deputies
.Include(d => d.User)
.Where(d => d.User == null)
.ToList()
在EF 6中,它会产生一个查询(为阅读目的而简化),如下所示
SELECT
d.*
FROM Deputy d
LEFT JOIN User u ON u.Id = d.UserId
WHERE u.Id IS NULL
在EF Core中,SQL如下所示
SELECT
d.*
FROM Deputy d
我有下面的模型。
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Child> Children { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
我想了解以下两个表的结构以及"OrderId“外键是如何生成的:
订单表:-
public class Order : BaseEntity, IAggregateRoot
{
private Order()
{
// required by EF
}
public Order(string buyerId, Address shipToAddress, List<OrderItem> items)
{
Guard.Against.Nul
我正在使用实体框架代码优先的方法。
我可以添加记录,更新记录,但是在添加新记录时,我会收到以下错误消息
"Conflicting changes to the role 'SaleCellBase_column_Target' of the relationship 'Sale.Classes.SaleCellBase_column' have been detected."
我怎么才能解决这个问题?
I have tree class;
SaleRow sale = new SaleRow (sheet, "Sales", &
假设我们有 和 类:在Play和Player两个表之间有非常好的一对多关系: public class Airport
{
public int Id { get; set; }
public string Name { get; set; }
public virtual IList Runways { get; set; }
}
public class Runway
{
public int Id { get; set; }
public string Name { get; set; }
//public int Airpo
我有两个实体:
class User
{
public Guid UserId { get; set; }
}
class ActionLog
{
public Guid ActionLogId { get; set; }
public Guid UserId { get; set; }
public User User {get; set;}
}
当我将这些添加到EF核心数据上下文中时,ActionLog.UserId上的约定会生成一个外键,但我只想记录没有关系的UserId。我不想要级联删除和密钥检查。我怎么能取消那个惯例?
我正在尝试向Customers表中添加一个新的外键列。这是我的迁移:
class AddCompanyForeignKeyToCustomers < ActiveRecord::Migration[5.1]
def change
add_reference :customers, :company, foreign_key: true
add_foreign_key :customers, :companies
end
end
以下是我得到的错误:
rake aborted!
StandardError: An error has occurred, this a
我试图首先在现有数据库上使用EF代码。我首先尝试了一些逆向工程工具,但是我遇到了一些问题,所以现在我正在尝试编写一些类的代码。我在建立一些外键关系时遇到了一些困难。考虑两张桌子。第一个被称为LocaleValueLookup:
public class LocaleValueLookup
{
public int Id { get; set; }
public Guid Guid { get; set; }
}
此表提供了保存在不同表中的多语言文本的Id (对于本问题而言,其他表并不重要)。第二个表名为SectionType,它有一个可选的FK到LocaleValueLooku
我试图创建带有外键的表,但是我一直收到错误1215,说它不能添加外键约束。我双重检查了约束的数据类型和引用部分,这似乎是正确的。我在阅读了一些关于错误的MySQL文档之后添加了MySQL,但这并没有解决这个问题。我刚开始创建新的数据库,所以我想我遗漏了一些东西。我可以添加什么来解决这个错误?
CREATE DATABASE cemc;
USE cemc;
CREATE TABLE CALENDAR(
year INT NOT NULL,
term VARCHAR(25) NOT NUL
在使用REFERENCE时,我们还需要使用FOREIGN KEY,两者之间有什么区别。
例如,:
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);
与:
CREATE TABLE Orders (
OrderID int NOT NULL PRIMARY KEY,
OrderNumber int NOT NULL,
Per