Error: the entity type requires a primary key
This exception message doesn't mean it requires a primary key to be defined in your database, it means it requires a primary key to be defined in your class.
Although you've attempted to do so:
private Guid _id;
[Key]
public Guid ID
{
get { return _id; }
}
This has no effect, as Entity Framework ignores read-only properties. It has to: when it retrieves a Fruits
record from the database, it constructs a Fruit
object, and then calls the property setters for each mapped property. That's never going to work for read-only properties.
You need Entity Framework to be able to set the value of ID
. This means the property needs to have a setter.
The entity type requires a primary key to be defined
Entity Framework goes by convention. That means that if you have an object with a property named Id
, it will assume that it is the Primary Key for the object. That's why your LoginItem
class works fine.
Your UserItem
class has no such property, and therefor it can't figure out what to use as the primary key.
To fix this, affix the KeyAttribute to whatever your primary key is on your class. For example:
// Need to add the following using as well at the top of the file:
using System.ComponentModel.DataAnnotations;
public class UserItem
{
[Key]
public int matrikelnr { get; set; }
public string studiengang { get; set; }
public string user_semester { get; set; }
public string user_max_klausur { get; set; }
// ...
}
EF Core: The entity type 'User' requires a primary key to be defined
You need to define a setter to your property. This is because when EF Core loads the data from the DB, it constructs an object of that class, so it needs a setter to set the properties.
public class User
{
[Key]
[Column("id")]
public long Id { get; set; }
}
That should do the trick.
The entity type 'Access' requires a primary key to be defined. If you intended to use a keyless entity type call 'HasNoKey()'
EF Core has the concept of Owned Entity Types, which can be used to implement DDD value types.
In OnModelCreating
you would do the following:
modelBuilder.Entity<AccessLevel>().OwnsOne(x => x.Access);
This would store Access
objects in the same database table as AccessLevel
objects, and therefore requires no primary key.
IdentityDbContext throws error "The entity type 'User' requires a primary key to be defined."
first userentity model has id? and in your code for userentity you don't assigned id value,
@sangita-paul's code is :
public class UserEntity : IdentityUser<Guid>
{
[Key]
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTimeOffset CreatedAt { get; set; }
}
has not id, so I think userentity need id for primary key and assigned value that
The entity type 'List<string>' requires a primary key to be defined
You'll have to make sure you have a table for the
public List<String> Images { get; set; } = new List<String>
since the database isn't able to reference an unknown list size in the table created.
Change
public List<String> Images { get; set; } = new List<String>
To
public List<ImageUri> Images { get; set; } = new List<ImageUri>
and create a class.
public class ImageUri
{
[Key]
public int Id { get; set; }
public string Uri { get; set; } = null!;
}
The entity type 'IdentityUserLogin<string>' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in
In your OnModelCreating you may declare the HasNoKey(). You declare this if you want to configure your specific entity/table with no keys.
In this example we declare the target schema by using the HasDefaultSchema of your entity/table then use the Entity to specify your target table then use the HasNoKey().
Goodluck and happy coding :)
Related Topics
Build Query String for System.Net.Httpclient Get
Adding an Incremental Number to Duplicate String
Could Not Start Windows Service, Error 1064
Check If Combobox Value Is Empty
Get Properties and Values from Unknown Object
Convert Date Format of String to Datetime Mm/Dd/Yyyy When System Date Formate Is Dd/Mm/Yyyy
Repaired Records:Cell Information from Worksheet Created from Scratch
Programmatically Create and Launch and Rdp Session (Without Gui)
Fast Way of Finding Most and Least Significant Bit Set in a 64-Bit Integer
How to Match Hyphens With Regular Expression
How to Fix Json.Net (Newtonsoft.Json) Runtime File Load Exception
How to Delete Records Between Two Dates in Bulk
How Does Httpcontext.Current.User.Identity.Name Know Which Usernames Exist
Reference External Dll in .Net Core Project
How to Check If Data Exists Before Writing to Table
How to Change Cell Background Color in Wpf Datagrid
How to Cast Object to List<Object> and Turn It into an Array