Multiplicity is not valid in Role 'CW_FirmaCommunication_CwFirma_Source' in relationship...
I have the following problem:
I have a company (CW_Firma) which can have 0 to many ways to contact them (CW_FirmaCommunication).
I am using EntityFramework and FluentAPI to create the relationship.
I have the following code :
[Table("dbo.CW_Firma")]
public class CW_Firma
{
[Key]
[Column("F_VAT")]
public int VatNumber { get; set; }
}
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("FC_VAT")]
public int VatNumber { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired(c => c.CwFirma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
}
When I run my code, I get the following exception :
Multiplicity is not valid in Role 'CW_FirmaCommunication_CwFirma_Source' in relationship 'CW_FirmaCommunication_CwFirma'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'
I have been searching the internet, looking at different solutions here on StackOverflow, but nothing seems to resolve my problem.
Can anyone tell me where I'm going wrong?
c# entity-framework-6 one-to-many ef-fluent-api
add a comment |
I have the following problem:
I have a company (CW_Firma) which can have 0 to many ways to contact them (CW_FirmaCommunication).
I am using EntityFramework and FluentAPI to create the relationship.
I have the following code :
[Table("dbo.CW_Firma")]
public class CW_Firma
{
[Key]
[Column("F_VAT")]
public int VatNumber { get; set; }
}
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("FC_VAT")]
public int VatNumber { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired(c => c.CwFirma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
}
When I run my code, I get the following exception :
Multiplicity is not valid in Role 'CW_FirmaCommunication_CwFirma_Source' in relationship 'CW_FirmaCommunication_CwFirma'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'
I have been searching the internet, looking at different solutions here on StackOverflow, but nothing seems to resolve my problem.
Can anyone tell me where I'm going wrong?
c# entity-framework-6 one-to-many ef-fluent-api
add a comment |
I have the following problem:
I have a company (CW_Firma) which can have 0 to many ways to contact them (CW_FirmaCommunication).
I am using EntityFramework and FluentAPI to create the relationship.
I have the following code :
[Table("dbo.CW_Firma")]
public class CW_Firma
{
[Key]
[Column("F_VAT")]
public int VatNumber { get; set; }
}
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("FC_VAT")]
public int VatNumber { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired(c => c.CwFirma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
}
When I run my code, I get the following exception :
Multiplicity is not valid in Role 'CW_FirmaCommunication_CwFirma_Source' in relationship 'CW_FirmaCommunication_CwFirma'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'
I have been searching the internet, looking at different solutions here on StackOverflow, but nothing seems to resolve my problem.
Can anyone tell me where I'm going wrong?
c# entity-framework-6 one-to-many ef-fluent-api
I have the following problem:
I have a company (CW_Firma) which can have 0 to many ways to contact them (CW_FirmaCommunication).
I am using EntityFramework and FluentAPI to create the relationship.
I have the following code :
[Table("dbo.CW_Firma")]
public class CW_Firma
{
[Key]
[Column("F_VAT")]
public int VatNumber { get; set; }
}
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("FC_VAT")]
public int VatNumber { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired(c => c.CwFirma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
}
When I run my code, I get the following exception :
Multiplicity is not valid in Role 'CW_FirmaCommunication_CwFirma_Source' in relationship 'CW_FirmaCommunication_CwFirma'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'
I have been searching the internet, looking at different solutions here on StackOverflow, but nothing seems to resolve my problem.
Can anyone tell me where I'm going wrong?
c# entity-framework-6 one-to-many ef-fluent-api
c# entity-framework-6 one-to-many ef-fluent-api
asked Nov 16 '18 at 14:39
Bart SchelkensBart Schelkens
4133927
4133927
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
- you use fluent api and mapping annotations - I would prefer to use only one,
- in annotation mapping you declared that field VatNumber of CW_FirmaCommunication table is primary key (as VatNumber in CW_Firma), which means that you have relation 1:1 while using fluent api you want 1:many.
Basing on your code I made few corrects:
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("Communnication_Id")]
public int CommunicationId { get; set; }
[Column("FC_VAT")]
public int VatNumber { get; set; }
public CW_Firma Firma { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
I have added seperate PK for communications table (not FC_VAT), and added navigation property Firma.
New mapping:
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired<CW_Firma>(c => c.Firma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
It's working in my test db.
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
|
show 3 more comments
After a lot of searching and trying, this is what I ended up with and what works fine:
public class CW_FirmaCommunication
{
[Key]
public int FC_ID { get; set; }
public int FC_VAT { get; set; }
public int FC_Type { get; set; }
public string FC_Data { get; set; }
[ForeignKey("FC_VAT")]
public virtual CW_Firma CwFirma { get; set; }
}
public class CW_Firma
{
[Key]
public int F_VAT { get; set; }
}
And I removed the code from the "OnModelCreating".
add a comment |
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',
autoActivateHeartbeat: false,
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
});
}
});
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53339961%2fmultiplicity-is-not-valid-in-role-cw-firmacommunication-cwfirma-source-in-rela%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
- you use fluent api and mapping annotations - I would prefer to use only one,
- in annotation mapping you declared that field VatNumber of CW_FirmaCommunication table is primary key (as VatNumber in CW_Firma), which means that you have relation 1:1 while using fluent api you want 1:many.
Basing on your code I made few corrects:
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("Communnication_Id")]
public int CommunicationId { get; set; }
[Column("FC_VAT")]
public int VatNumber { get; set; }
public CW_Firma Firma { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
I have added seperate PK for communications table (not FC_VAT), and added navigation property Firma.
New mapping:
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired<CW_Firma>(c => c.Firma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
It's working in my test db.
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
|
show 3 more comments
- you use fluent api and mapping annotations - I would prefer to use only one,
- in annotation mapping you declared that field VatNumber of CW_FirmaCommunication table is primary key (as VatNumber in CW_Firma), which means that you have relation 1:1 while using fluent api you want 1:many.
Basing on your code I made few corrects:
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("Communnication_Id")]
public int CommunicationId { get; set; }
[Column("FC_VAT")]
public int VatNumber { get; set; }
public CW_Firma Firma { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
I have added seperate PK for communications table (not FC_VAT), and added navigation property Firma.
New mapping:
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired<CW_Firma>(c => c.Firma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
It's working in my test db.
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
|
show 3 more comments
- you use fluent api and mapping annotations - I would prefer to use only one,
- in annotation mapping you declared that field VatNumber of CW_FirmaCommunication table is primary key (as VatNumber in CW_Firma), which means that you have relation 1:1 while using fluent api you want 1:many.
Basing on your code I made few corrects:
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("Communnication_Id")]
public int CommunicationId { get; set; }
[Column("FC_VAT")]
public int VatNumber { get; set; }
public CW_Firma Firma { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
I have added seperate PK for communications table (not FC_VAT), and added navigation property Firma.
New mapping:
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired<CW_Firma>(c => c.Firma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
It's working in my test db.
- you use fluent api and mapping annotations - I would prefer to use only one,
- in annotation mapping you declared that field VatNumber of CW_FirmaCommunication table is primary key (as VatNumber in CW_Firma), which means that you have relation 1:1 while using fluent api you want 1:many.
Basing on your code I made few corrects:
[Table("dbo.CW_FirmaCommunication")]
public class CW_FirmaCommunication
{
[Key]
[Column("Communnication_Id")]
public int CommunicationId { get; set; }
[Column("FC_VAT")]
public int VatNumber { get; set; }
public CW_Firma Firma { get; set; }
[Column("FC_Data")]
public string FC_Data { get; set; }
}
I have added seperate PK for communications table (not FC_VAT), and added navigation property Firma.
New mapping:
modelBuilder.Entity<CW_FirmaCommunication>()
.HasRequired<CW_Firma>(c => c.Firma)
.WithMany()
.HasForeignKey(f => f.VatNumber);
It's working in my test db.
edited Nov 19 '18 at 10:36
answered Nov 16 '18 at 16:34
Grzesiek DanowskiGrzesiek Danowski
1926
1926
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
|
show 3 more comments
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
Thanks for your remarks, but how can I make it so my problem is solved? I tried removing the "Key" from CW_FirmaCommunication" but I still get the same error.
– Bart Schelkens
Nov 19 '18 at 7:07
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
I've changed my code to what you wrote, but now I'm getting : A relationship multiplicity constraint violation occurred: An EntityReference can have no more than one related object, but the query returned more than one related object. This is a non-recoverable error.
– Bart Schelkens
Nov 19 '18 at 14:31
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
@BartSchelkens do you mean you have created tables in db and that new error is during quering data? In my tests tables had created. Maybe clear both tables and create them from start.
– Grzesiek Danowski
Nov 19 '18 at 15:04
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
I'm using an existing database. So I didn't create the tables, they were already there.
– Bart Schelkens
Nov 19 '18 at 15:07
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
Is FC_VAT unique in CW_Firma table?
– Grzesiek Danowski
Nov 19 '18 at 15:10
|
show 3 more comments
After a lot of searching and trying, this is what I ended up with and what works fine:
public class CW_FirmaCommunication
{
[Key]
public int FC_ID { get; set; }
public int FC_VAT { get; set; }
public int FC_Type { get; set; }
public string FC_Data { get; set; }
[ForeignKey("FC_VAT")]
public virtual CW_Firma CwFirma { get; set; }
}
public class CW_Firma
{
[Key]
public int F_VAT { get; set; }
}
And I removed the code from the "OnModelCreating".
add a comment |
After a lot of searching and trying, this is what I ended up with and what works fine:
public class CW_FirmaCommunication
{
[Key]
public int FC_ID { get; set; }
public int FC_VAT { get; set; }
public int FC_Type { get; set; }
public string FC_Data { get; set; }
[ForeignKey("FC_VAT")]
public virtual CW_Firma CwFirma { get; set; }
}
public class CW_Firma
{
[Key]
public int F_VAT { get; set; }
}
And I removed the code from the "OnModelCreating".
add a comment |
After a lot of searching and trying, this is what I ended up with and what works fine:
public class CW_FirmaCommunication
{
[Key]
public int FC_ID { get; set; }
public int FC_VAT { get; set; }
public int FC_Type { get; set; }
public string FC_Data { get; set; }
[ForeignKey("FC_VAT")]
public virtual CW_Firma CwFirma { get; set; }
}
public class CW_Firma
{
[Key]
public int F_VAT { get; set; }
}
And I removed the code from the "OnModelCreating".
After a lot of searching and trying, this is what I ended up with and what works fine:
public class CW_FirmaCommunication
{
[Key]
public int FC_ID { get; set; }
public int FC_VAT { get; set; }
public int FC_Type { get; set; }
public string FC_Data { get; set; }
[ForeignKey("FC_VAT")]
public virtual CW_Firma CwFirma { get; set; }
}
public class CW_Firma
{
[Key]
public int F_VAT { get; set; }
}
And I removed the code from the "OnModelCreating".
answered Nov 20 '18 at 10:05
Bart SchelkensBart Schelkens
4133927
4133927
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53339961%2fmultiplicity-is-not-valid-in-role-cw-firmacommunication-cwfirma-source-in-rela%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown