T4 (TPH) .xaml (VS) 및 SSDLToSQL10.tt (VS) 템플릿을 사용하여 T-SQL 생성과 함께 Entity 프레임 워크를 사용합니다. I 2 개 사용자 유형을 갖기 때문에 I 테이블SaveChanges가 TPH 엔터티에 작동하지 않습니다.
TABLE [dbo].[Users](
[UserId] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](100) NOT NULL,
[Password] [nvarchar](50) NOT NULL,
[IsPaid] [bit] NOT NULL
가, 필드 IsPaid가 판별된다. 내 모델에 TPH를 만들었습니다. .TT를 통해 생성 된 클래스의 내가 같은 데이터를 새로운 지불 사용자 (U)을 만들어이 ID 3와 일반 사용자가 있다고 가정하고 저장하려고하자
public abstract partial class User
{
public User()
{
}
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public partial class RegularUser : User
{
}
public partial class PaidUser : User
{
}
public Container()
: base("name=Container")
{
this.Configuration.LazyLoadingEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<User> Users { get; set; }
이다.
using (var entities = new Container())
{
entities.Entry(u).State = u.UserId == 0 ? EntityState.Added : EntityState.Modified;
entities.SaveChanges();
}
아무런 일도 일어나지 않습니다. 그리고 프로파일 러에서 쿼리가 IsPaid 컬럼을 전혀 사용하지 않는다는 것을 알 수 있습니다. 누구든지 도와 줄 수 있습니까?