【发布时间】:2016-11-20 15:03:05
【问题描述】:
我希望每次传输都有一对 poi 行 我有:
public class Transfer : DependentRestrictedEntity
{
public virtual Account Acount { set; get; }
public DateTime Time { set; get; }
public Transfer PairedTransfer { set; get; }
[NotMapped]
public override RestrictedEntity DependentOn => Acount;
//other code.
}
public class Account : RestrictedEntity
{
public string Name { get; set; }
//other code.
}
public class RestrictedEntity : Entity
{
public Filter Filter { get; set; }
//other code.
}
public abstract class DependentRestrictedEntity : RestrictedEntity
{
[NotMapped]
public abstract RestrictedEntity DependentOn { get; }
//other code.
}
public class Entity
{
[Key, JsonProperty, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ID { set; get; }
//other code.
}
public class MyMoneyContext : UserDbContext
{
public DbSet<Account> Accounts { get; set; }
public DbSet<Transfer> Transfers { get; set; }
protected override void OnModelCreating(DbModelBuilder _modelBuilder)
{
base.OnModelCreating(_modelBuilder);
_modelBuilder.Entity<Transfer>()
.HasRequired(_t => _t.PairedTransfer)
.WithRequiredDependent();
}
//other code
}
不知何故,我需要对 2 转移。其中一个应该属于第一个帐户,第二个应该属于第二个帐户。对第一个帐户有权限但对第二个帐户没有权限的用户应该不能看到这两个条目。
这里的问题是我不知道如何添加新条目。我试过了:
var accounts = Database.Accounts.ToList();
Transfer pair, pair2;
Database.Transfers.Add(
pair = new Transfer()
{
ID = Guid.NewGuid(),
Ammount = 100,
Filter = accounts[0].Filter,
Acount = accounts[0],
}
);
Database.Transfers.Add
(
pair2 = new Transfer()
{
ID = Guid.NewGuid(),
Ammount = -100,
Filter = accounts[1].Filter,
Acount = accounts[1],
}
);
pair.PairedTransfer = pair2;
pair2.PairedTransfer = pair;
Database.SaveChanges();
但我遇到循环引用问题。
【问题讨论】:
标签: c# entity-framework ef-code-first code-first one-to-one