EF Core 2: Problem with creating mapping with deletebehaviour.Restrict
up vote
0
down vote
favorite
I have the following two tables:
-Table1 (Principal)
-Table2
Entities:
public partial class Table2
{
public int Table2Id{ get; set; }
public int Tabl1Id{ get; set; }
public virtual Table1 Table1 { get; set; }
}
public partial class Table1
{
public virtual ICollection<Table2> Table2Items { get; set; }
}
For this I create the following mapping:
modelBuilder.Entity<Table2>()
.HasOne(e => e.Table1 )
.WithMany(e => e.Table2Items)
.HasForeignKey(e => e.Table1Id)
.OnDelete(DeleteBehavior.Restrict);
This gives me the following piece of code in the migration file:
migrationBuilder.AddForeignKey(
name: "FK_Table2_Table1_Table1Id",
table: "Table2",
column: "Table1Id",
principalTable: "Table1",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
How come that my migration is still resolving the cascade behaviour for this relationship?
ef-code-first ef-core-2.0
add a comment |
up vote
0
down vote
favorite
I have the following two tables:
-Table1 (Principal)
-Table2
Entities:
public partial class Table2
{
public int Table2Id{ get; set; }
public int Tabl1Id{ get; set; }
public virtual Table1 Table1 { get; set; }
}
public partial class Table1
{
public virtual ICollection<Table2> Table2Items { get; set; }
}
For this I create the following mapping:
modelBuilder.Entity<Table2>()
.HasOne(e => e.Table1 )
.WithMany(e => e.Table2Items)
.HasForeignKey(e => e.Table1Id)
.OnDelete(DeleteBehavior.Restrict);
This gives me the following piece of code in the migration file:
migrationBuilder.AddForeignKey(
name: "FK_Table2_Table1_Table1Id",
table: "Table2",
column: "Table1Id",
principalTable: "Table1",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
How come that my migration is still resolving the cascade behaviour for this relationship?
ef-code-first ef-core-2.0
.WithMany()should be.WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.
– Ivan Stoev
Nov 7 at 8:11
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give youRestrict. It can easily be proved by a clean project containing just the code from the post.
– Ivan Stoev
Nov 7 at 8:28
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have the following two tables:
-Table1 (Principal)
-Table2
Entities:
public partial class Table2
{
public int Table2Id{ get; set; }
public int Tabl1Id{ get; set; }
public virtual Table1 Table1 { get; set; }
}
public partial class Table1
{
public virtual ICollection<Table2> Table2Items { get; set; }
}
For this I create the following mapping:
modelBuilder.Entity<Table2>()
.HasOne(e => e.Table1 )
.WithMany(e => e.Table2Items)
.HasForeignKey(e => e.Table1Id)
.OnDelete(DeleteBehavior.Restrict);
This gives me the following piece of code in the migration file:
migrationBuilder.AddForeignKey(
name: "FK_Table2_Table1_Table1Id",
table: "Table2",
column: "Table1Id",
principalTable: "Table1",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
How come that my migration is still resolving the cascade behaviour for this relationship?
ef-code-first ef-core-2.0
I have the following two tables:
-Table1 (Principal)
-Table2
Entities:
public partial class Table2
{
public int Table2Id{ get; set; }
public int Tabl1Id{ get; set; }
public virtual Table1 Table1 { get; set; }
}
public partial class Table1
{
public virtual ICollection<Table2> Table2Items { get; set; }
}
For this I create the following mapping:
modelBuilder.Entity<Table2>()
.HasOne(e => e.Table1 )
.WithMany(e => e.Table2Items)
.HasForeignKey(e => e.Table1Id)
.OnDelete(DeleteBehavior.Restrict);
This gives me the following piece of code in the migration file:
migrationBuilder.AddForeignKey(
name: "FK_Table2_Table1_Table1Id",
table: "Table2",
column: "Table1Id",
principalTable: "Table1",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
How come that my migration is still resolving the cascade behaviour for this relationship?
ef-code-first ef-core-2.0
ef-code-first ef-core-2.0
edited Nov 7 at 8:23
asked Nov 7 at 7:56
Kai
211313
211313
.WithMany()should be.WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.
– Ivan Stoev
Nov 7 at 8:11
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give youRestrict. It can easily be proved by a clean project containing just the code from the post.
– Ivan Stoev
Nov 7 at 8:28
add a comment |
.WithMany()should be.WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.
– Ivan Stoev
Nov 7 at 8:11
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give youRestrict. It can easily be proved by a clean project containing just the code from the post.
– Ivan Stoev
Nov 7 at 8:28
.WithMany() should be .WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.– Ivan Stoev
Nov 7 at 8:11
.WithMany() should be .WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.– Ivan Stoev
Nov 7 at 8:11
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give you
Restrict. It can easily be proved by a clean project containing just the code from the post.– Ivan Stoev
Nov 7 at 8:28
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give you
Restrict. It can easily be proved by a clean project containing just the code from the post.– Ivan Stoev
Nov 7 at 8:28
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53185420%2fef-core-2-problem-with-creating-mapping-with-deletebehaviour-restrict%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
.WithMany()should be.WithMany(e => e.Table2Items). Currently you are creating two one-to-many relationships.– Ivan Stoev
Nov 7 at 8:11
@IvanStoev: Not the problem, but you are correct! Thank you, I fixed this
– Kai
Nov 7 at 8:24
Well, if that's the exact fluent code, no other hidden code (like reflection/model loops etc.) and the migration is regenerated, it should give you
Restrict. It can easily be proved by a clean project containing just the code from the post.– Ivan Stoev
Nov 7 at 8:28