GiftCouponPayment テーブルと Payment テーブルにデータを挿入する次のコードがあります。このコードにより、データベースとこれら 2 つのテーブルが正常に作成されました。ただし、1 つのテーブル (GiftCouponPayment テーブル) にはデータが挿入されていません。それを機能させるために何を変更する必要がありますか?
コード
static void Main(string[] args)
{
string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
using (var db = new NerdDinners(connectionstring))
{
var giftCouponPayment = new GiftCouponPayment();
giftCouponPayment.MyID=1;
giftCouponPayment.MyValue=250;
List<IPaymentComponent> comps = new List<IPaymentComponent>();
comps.Add(giftCouponPayment);
var payment = new Payment { PaymentComponents = comps, PaymentID = 1, PayedTime=DateTime.Now };
db.Payments.Add(payment);
int recordsAffected = db.SaveChanges();
}
}
ドメイン クラス
namespace LijosEF
{
public interface IPaymentComponent
{
int MyID { get; set; }
int MyValue { get; set; }
int GetEffectiveValue();
}
public partial class GiftCouponPayment : IPaymentComponent
{
private int CouponValue;
public int MyID
{
get
{
return this.GiftCouponPaymentID;
}
set
{
this.GiftCouponPaymentID = value;
}
}
public int MyValue
{
get
{
return this.CouponValue;
}
set
{
this.CouponValue = value;
}
}
public int GetEffectiveValue()
{
if (this.GiftCouponPaymentID < 2000)
{
return 0;
}
return this.CouponValue;
}
public int GiftCouponPaymentID { get; set; }
}
public partial class Payment
{
public int PaymentID { get; set; }
public List<IPaymentComponent> PaymentComponents { get; set; }
public DateTime PayedTime { get; set; }
}
//System.Data.Entity.DbContext is from EntityFramework.dll
public class NerdDinners : System.Data.Entity.DbContext
{
public NerdDinners(string connString): base(connString)
{
}
protected override void OnModelCreating(DbModelBuilder modelbuilder)
{
modelbuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
public DbSet<GiftCouponPayment> GiftCouponPayments { get; set; }
public DbSet<Payment> Payments { get; set; }
}
}