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?










share|improve this question
























  • .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















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?










share|improve this question
























  • .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













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?










share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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 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


















  • .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
















.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

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















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





































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














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




















































































這個網誌中的熱門文章

Academy of Television Arts & Sciences

L'Équipe

1995 France bombings