Im using code first approach in my project. Im trying to create dynamic Create
action and dynamic Complete(UnitOfWork)
action as well. Im getting that error after my function adding first value.
Let me show you to my function :
public void WebFairHallSeatingCreator(int webFairHallID)
{
int[] hallSeatingOrderColumnValue = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
string[] hallSeatingOrderRowValue = { "a", "b", "c", "d", "e", "f", "g" };
var hallSeatingOrder = new HallSeatingOrder();
for (int row = 0; row < hallSeatingOrderRowValue.Length; row++)
{
for (int col = 1; col <= hallSeatingOrderColumnValue.Length; col++)
{
if ((hallSeatingOrderRowValue.GetValue(row).ToString() == "c") || (hallSeatingOrderRowValue.GetValue(row).ToString() == "d"))
{
if ((col == 5) || (col == 6) || (col == 7))
{
hallSeatingOrder.HallSeatingOrderRowValue = "x";
hallSeatingOrder.HallSeatingOrderColumnValue = 15;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
}
else
{
hallSeatingOrder.HallSeatingOrderRowValue= hallSeatingOrderRowValue.GetValue(row).ToString();
hallSeatingOrder.HallSeatingOrderColumnValue = col;
hallSeatingOrder.WebFairHallID = webFairHallID;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
_unitOfWorkWFH.Complete();// This is the point
}
}
else
{
hallSeatingOrder.HallSeatingOrderRowValue = hallSeatingOrderRowValue.GetValue(row).ToString();
hallSeatingOrder.HallSeatingOrderColumnValue = col;
hallSeatingOrder.WebFairHallID = webFairHallID;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
_unitOfWorkWFH.Complete();// This is the point
}
}
}
}
here its my HallSeatingOrder
class :
public class HallSeatingOrder : Base
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int HallSeatingOrderID { get; set; }
[Required]
public int WebFairHallID { get; set; }
public int? CompanyID { get; set; }
[Required]
public int HallSeatingOrderColumnValue { get; set; }
[Required]
public string HallSeatingOrderRowValue { get; set; }
public bool HallSeatingOrderIsSpecial { get; set; }
public Company Company { get; set; }
public WebFairHall WebFairHall { get; set; }
}
public class HallSeatingOrderConfiguration : IEntityTypeConfiguration<HallSeatingOrder>
{
public void Configure(EntityTypeBuilder<HallSeatingOrder> builder)
{
builder.HasKey(x => x.HallSeatingOrderID);
builder.HasOne(x => x.Company)
.WithMany(x => x.HallSeatingOrders)
.HasForeignKey(x => x.CompanyID)
.OnDelete(DeleteBehavior.NoAction);
builder.HasOne(x => x.WebFairHall)
.WithMany(x => x.HallSeatingOrders)
.HasForeignKey(x => x.WebFairHallID)
.OnDelete(DeleteBehavior.NoAction);
}
}
i allready look out of every question with my problem.
i try using ValueGeneratedOnAdd()
and [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
but none of it worked on me.
thanks for the @IvanStoev, i solve that problem. there is nothing wrong with my model and my configuration. there was a one mistake and let me show u that:
public void WebFairHallSeatingCreator(int webFairHallID)
{
int[] hallSeatingOrderColumnValue = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
string[] hallSeatingOrderRowValue = { "a", "b", "c", "d", "e", "f", "g" };
for (int row = 0; row < hallSeatingOrderRowValue.Length; row++)
{
for (int col = 1; col <= hallSeatingOrderColumnValue.Length; col++)
{
if ((hallSeatingOrderRowValue.GetValue(row).ToString() == "c") || (hallSeatingOrderRowValue.GetValue(row).ToString() == "d"))
{
if ((col == 5) || (col == 6) || (col == 7))
{
var hallSeatingOrder = new HallSeatingOrder();
hallSeatingOrder.HallSeatingOrderRowValue = "x";
hallSeatingOrder.HallSeatingOrderColumnValue = 15;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
_unitOfWorkWFH.Complete();
}
else
{
var hallSeatingOrder = new HallSeatingOrder();
hallSeatingOrder.HallSeatingOrderRowValue= hallSeatingOrderRowValue.GetValue(row).ToString();
hallSeatingOrder.HallSeatingOrderColumnValue = col;
hallSeatingOrder.WebFairHallID = webFairHallID;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
_unitOfWorkWFH.Complete();
}
}
else
{
var hallSeatingOrder = new HallSeatingOrder();
hallSeatingOrder.HallSeatingOrderRowValue = hallSeatingOrderRowValue.GetValue(row).ToString();
hallSeatingOrder.HallSeatingOrderColumnValue = col;
hallSeatingOrder.WebFairHallID = webFairHallID;
_unitOfWorkWFH.RepositoryHallSeatingOrder.Create(hallSeatingOrder);
_unitOfWorkWFH.Complete();
}
}
}
}
i need to create that var hallSeatingOrder = new HallSeatingOrder();
for each of for loop,thats all. Thanks to him.