Search code examples
c#asp.net-core.net-coreentity-framework-coreef-code-first-mapping

How to setup entity relations in Entity Framework Core


Here we are on EF Core and got 3 tables:

  1. News
  2. Items
  3. Links

And more (except News, Items): Content, Post, Form, etc.

And my model definitions

public class Item
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public Link Link { get; set; }
}

public class News
{
    public int Id { get; set; }
    public string Header { get; set; }
    public string Content { get; set; }
    public Link Link { get; set; }
}

public class Link
{
    public int Id { get; set; }
    public string Type { get; set; }
    public int RowId  { get; set; }
    public string Url { get; set; }
}

Table Links describe URL for every News and every Item. This means that Links has 4 columns:

  1. Id
  2. Type - news or item
  3. RowId - contains ID of Item or News (depends on the Type)
  4. URL

How to setup the relationships? Keep in mind that we need to resolve Entity by URL in Links table.


Solution

  • Dapper. Just Dapper that allows write custom queries.