<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Entity Framework on SoftDevPractice</title>
    <link>https://softdevpractice.com/tags/entity-framework/</link>
    <description>Recent content in Entity Framework on SoftDevPractice</description>
    <generator>Hugo -- 0.147.3</generator>
    <language>en</language>
    <lastBuildDate>Sun, 24 Nov 2019 13:16:58 +0000</lastBuildDate>
    <atom:link href="https://softdevpractice.com/tags/entity-framework/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to handle Many-To-Many in Entity Framework Core</title>
      <link>https://softdevpractice.com/posts/many-to-many-ef-core/</link>
      <pubDate>Sun, 24 Nov 2019 13:16:58 +0000</pubDate><author>Zbigniew</author>
      <guid>https://softdevpractice.com/posts/many-to-many-ef-core/</guid>
      <description>Learn how to handle many-to-many relationships in Entity Framework Core. Includes snippets for database structure creation, inserting &amp;amp; deleteing entities.</description>
      <content:encoded><![CDATA[<p>Many-To-Many relationship in not as straightforward as other relationships. In this post I’ll show you how to create many-to-many relationships and how to use them in EF Core.</p>
<h2 id="the-model">The model</h2>
<p>Simple and practical example of many-to-many could be some sort of digital ecommerce store. Users can put items into shopping cart (one shopping cart can have many items), whereas items belong to multiple carts. Lets start off by creating <code>Cart</code> and <code>Item</code> classes.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">public</span> <span class="k">class</span> <span class="nc">Cart</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Id</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">ICollection</span><span class="p">&lt;</span><span class="n">Item</span><span class="p">&gt;</span> <span class="n">Items</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">public</span> <span class="k">class</span> <span class="nc">Item</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Id</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">string</span> <span class="n">Name</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Quantity</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">ICollection</span><span class="p">&lt;</span><span class="n">Cart</span><span class="p">&gt;</span> <span class="n">Carts</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>This looks good, but unfortunately it won’t work. At the day of publishing this article EF Core cannot handle this scenario. It simple don’t know how to handle this relationship. This is what you get when you’ll try to add migration:</p>
<blockquote>
<p>Unable to determine the relationship represented by navigation property &lsquo;Cart.Items&rsquo; of type &lsquo;ICollection&lt;Item&gt;&rsquo;. Either manually configure the relationship, or ignore this property using the &lsquo;[NotMapped]&rsquo; attribute or by using &lsquo;EntityTypeBuilder.Ignore&rsquo; in &lsquo;OnModelCreating&rsquo;.</p></blockquote>
<p>First thing we need to do is to manually create another “in-between” class (table) which will hold many-to-many relations. Lets we proceed we new class:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">public</span> <span class="k">class</span> <span class="nc">CartItem</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">CartId</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">Cart</span> <span class="n">Cart</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">ItemId</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">Item</span> <span class="n">Item</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Since we have a new class that maps <code>Cart</code> to <code>Item</code> we also need to change navigation properties:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">public</span> <span class="k">class</span> <span class="nc">Cart</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Id</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">ICollection</span><span class="p">&lt;</span><span class="n">CartItem</span><span class="p">&gt;</span> <span class="n">Items</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">public</span> <span class="k">class</span> <span class="nc">Item</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Id</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">string</span> <span class="n">Name</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="kt">int</span> <span class="n">Quantity</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="kd">public</span> <span class="n">ICollection</span><span class="p">&lt;</span><span class="n">CartItem</span><span class="p">&gt;</span> <span class="n">Carts</span> <span class="p">{</span> <span class="k">get</span><span class="p">;</span> <span class="k">set</span><span class="p">;</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>If you try to add-migration right now then you’ll get another error:</p>
<blockquote>
<p>The entity type &lsquo;CartItem&rsquo; requires a primary key to be defined.</p></blockquote>
<p>Right, <code>CartItem</code> doesn’t have primary key. Since it’s a many-to-many relationship it should have composite key. Composite key is like a regular primary key but it is composed by two properties (columns) instead of one. At the moment, the only way to create composite key is to define it inside <code>OnModelCreating</code>.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kd">protected</span> <span class="kd">override</span> <span class="k">void</span> <span class="n">OnModelCreating</span><span class="p">(</span><span class="n">ModelBuilder</span> <span class="n">builder</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">base</span><span class="p">.</span><span class="n">OnModelCreating</span><span class="p">(</span><span class="n">builder</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">    <span class="n">builder</span><span class="p">.</span><span class="n">Entity</span><span class="p">&lt;</span><span class="n">CartItem</span><span class="p">&gt;().</span><span class="n">HasKey</span><span class="p">(</span><span class="n">i</span> <span class="p">=&gt;</span> <span class="k">new</span> <span class="p">{</span> <span class="n">i</span><span class="p">.</span><span class="n">CartId</span><span class="p">,</span> <span class="n">i</span><span class="p">.</span><span class="n">ItemId</span> <span class="p">});</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Finally, our database structure can be handled by EntityFramework. We can proceed with migration.</p>
<h2 id="inserting-into-many-to-many">Inserting into Many-To-Many</h2>
<p>Suppose that we already have <code>Cart</code> and <code>Item</code> in our database. Now we want to add specific item to specific cart. In order to do this we need to create new <code>CartItem</code> and save it.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cart</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">Carts</span><span class="p">.</span><span class="n">First</span><span class="p">(</span><span class="n">i</span> <span class="p">=&gt;</span> <span class="n">i</span><span class="p">.</span><span class="n">Id</span> <span class="p">==</span> <span class="m">256</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">item</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">First</span><span class="p">(</span><span class="n">i</span> <span class="p">=&gt;</span> <span class="n">i</span><span class="p">.</span><span class="n">Id</span> <span class="p">==</span> <span class="m">1024</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// you can either associate it using ids</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartItem</span> <span class="p">=</span> <span class="k">new</span> <span class="n">CartItem</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">CartId</span> <span class="p">=</span> <span class="n">cart</span><span class="p">.</span><span class="n">Id</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">ItemId</span> <span class="p">=</span> <span class="n">item</span><span class="p">.</span><span class="n">Id</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1">// or by using entities</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartItem</span> <span class="p">=</span> <span class="k">new</span> <span class="n">CartItem</span>
</span></span><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">Cart</span> <span class="p">=</span> <span class="n">cart</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">Item</span> <span class="p">=</span> <span class="n">item</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">Add</span><span class="p">(</span><span class="n">cartItem</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">SaveChanges</span><span class="p">();</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="retrieving-related-data-in-many-to-many">Retrieving related data in Many-To-Many</h2>
<p>Fetching data from database is rather simple. You need to pay attention to includes in case of retrieving entities with related data. Just remember that there are a total of 3 tables involved: <code>Cart</code>, <code>Item</code>, and <code>CartItem</code> which links items with carts.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="c1">// get specific cart including all items</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartIncludingItems</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">Carts</span><span class="p">.</span><span class="n">Include</span><span class="p">(</span><span class="n">cart</span> <span class="p">=&gt;</span> <span class="n">cart</span><span class="p">.</span><span class="n">Items</span><span class="p">).</span><span class="n">ThenInclude</span><span class="p">(</span><span class="n">row</span> <span class="p">=&gt;</span> <span class="n">row</span><span class="p">.</span><span class="n">Item</span><span class="p">).</span><span class="n">First</span><span class="p">(</span><span class="n">cart</span> <span class="p">=&gt;</span> <span class="n">cart</span><span class="p">.</span><span class="n">Id</span> <span class="p">==</span> <span class="m">1</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="c1">// get all items belonging to cart</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartItems</span> <span class="p">=</span> <span class="n">cartIncludingItems</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Select</span><span class="p">(</span><span class="n">row</span> <span class="p">=&gt;</span> <span class="n">row</span><span class="p">.</span><span class="n">Item</span><span class="p">);</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>In addition, you don’t have to do it using a relation. For instance, if you have cart id you can fetch all items at once using following Linq:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartId</span> <span class="p">=</span> <span class="m">1</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartItems</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">Items</span><span class="p">.</span><span class="n">Where</span><span class="p">(</span><span class="n">item</span> <span class="p">=&gt;</span> <span class="n">item</span><span class="p">.</span><span class="n">Carts</span><span class="p">.</span><span class="n">Any</span><span class="p">(</span><span class="n">j</span> <span class="p">=&gt;</span> <span class="n">j</span><span class="p">.</span><span class="n">CartId</span> <span class="p">==</span> <span class="n">cartId</span><span class="p">));</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Same principle applies to opposite use case, which means that you can apply above pattern to get all carts which have specific item.</p>
<h2 id="deleting-from-many-to-many">Deleting from Many-To-Many</h2>
<p>By deleting we mean removing association between cart and item. We won’t remove the cart or the item in the following examples, just the thing which holds cart and item association.</p>
<p>Lets start by deleting single item from cart.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartId</span> <span class="p">=</span> <span class="m">1</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">itemId</span> <span class="p">=</span> <span class="m">1</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cartItem</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">CartsItems</span><span class="p">.</span><span class="n">First</span><span class="p">(</span><span class="n">row</span> <span class="p">=&gt;</span> <span class="n">row</span><span class="p">.</span><span class="n">CartId</span> <span class="p">==</span> <span class="n">cartId</span> <span class="p">&amp;&amp;</span> <span class="n">row</span><span class="p">.</span><span class="n">ItemId</span> <span class="p">==</span> <span class="n">itemId</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">Remove</span><span class="p">(</span><span class="n">cartItem</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">SaveChanges</span><span class="p">();</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Then, let me show you how to remove all items from a cart.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-c#" data-lang="c#"><span class="line"><span class="cl"><span class="kt">var</span> <span class="n">cart</span> <span class="p">=</span> <span class="n">db</span><span class="p">.</span><span class="n">Carts</span><span class="p">.</span><span class="n">Include</span><span class="p">(</span><span class="n">c</span><span class="p">=&gt;</span> <span class="n">c</span><span class="p">.</span><span class="n">Items</span><span class="p">).</span><span class="n">First</span><span class="p">(</span><span class="n">i</span> <span class="p">=&gt;</span> <span class="n">i</span><span class="p">.</span><span class="n">Id</span> <span class="p">==</span> <span class="m">2</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">RemoveRange</span><span class="p">(</span><span class="n">cart</span><span class="p">.</span><span class="n">Items</span><span class="p">);</span>
</span></span><span class="line"><span class="cl"><span class="n">db</span><span class="p">.</span><span class="n">SaveChanges</span><span class="p">();</span>
</span></span></code></pre></td></tr></table>
</div>
</div>]]></content:encoded>
    </item>
  </channel>
</rss>
