I have this action which receives a parameter and i want to print out all the results
public ActionResult MusicaGenero(string genero) {
//should return more than 30 rows
var results = con.artista.Where(x=>x.genero==genero);
return View(results);
}
MusicaGenero have this
@model IEnumerable<MvcApplication1.Models.detallesMusica>
@{
ViewBag.Title = "MusicaGenero";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Musica del genero de: @ViewBag.genero</h2>
<ul>
@foreach(var detallesMusica in Model)
{
<li>@detallesMusica.artista</li>
<li>@detallesMusica.nombre</li>
<li>@detallesMusica.publicado</li>
<li>@detallesMusica.costo</li>
}
</ul>
How can but it throws an exception
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'album' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'genero' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'artista' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'albums' is based on type 'album' that has no keys defined.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'generos' is based on type 'genero' that has no keys defined.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'artista' is based on type 'artista' that has no keys defined.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.Entity.ModelConfiguration.ModelValidationException: One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'album' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'genero' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'artista' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'albums' is based on type 'album' that has no keys defined.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'generos' is based on type 'genero' that has no keys defined.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'artista' is based on type 'artista' that has no keys defined.
what is the problem here? I added already a key but still giving me that error.
As you can see, you are getting System.Data.Entity errors, and these, at least in this instance, have nothing to do with the code you've posted.
The Entity Framework needs some way of know what field it should define as the primary key. You can tell it how to do that in two ways.
You can define a property with the name 'Id' or append 'Id' to a property having the same name as the entity. For example, either of these would work
public class Album
{
public string Id {get; set;}
public string Name {get; set;}
}
public class Album
{
public string AlbumId {get; set;}
public string Name {get; set;}
}
EF would understand, based on the naming convention, to make the field Id
or AlbumId
the primary key.
The other thing you could do is use the System.ComponentModel.DataAnnotations
[Key]
attribute to define the key.
For example, this would make the field Name
the primary key for the table.
using System.ComponentModel.DataAnnotations;
//...
public class Album
{
[Key]
public string Name {get; set;}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With