Welcome!


This is a blog about software development, Entity Framework, .NET Core, C#, and random other things.

I'm Arthur and I'm the Engineering Manager for Entity Framework at Microsoft. However, this is my personal blog, and the opinions expressed here are my own.

Me

Recent Posts

Hacking my Sixth Form College network in 1991

Back in 1991 I was a student at Franklin Sixth Form College in Grimsby, England. (Roughly equivalent to being a junior in high school.)

The system admin challenged me to hack the school LAN.

This is what happened.

[Read more...]


All your versions are belong to us

Totally made up conversations about choosing Entity Framework version numbers.

[Read more...]


Moving to Linux

A few weeks ago, I decided to move from Windows to Linux as my primary development platform. These posts are about my experience.

Part 1: Background and first impressions

Part 2: My life in operating systems

Part 3: Installation and day-to-day use

Part 4: Conclusions


Welcome to One Unicorn 2.0!

I created my first blog back in 2011. I called it One Unicorn.

It seemed like a good idea at the time... :man_shrugging:

[Read more...]


What's the difference between EF Core and EF6?

And which one should I use?

TL;DR:

  • Use EF Core.
  • Or EF6 if it works better for you.
  • Or Dapper.

[Read more...]


All Posts

Entity Framework 101

» What's the difference between EF Core and EF6, and which one should I use?

» EF6 SQL Logging

» EF6 DetectChanges

» All your versions are belong to us

EF Core

» EF Core adoption is very healthy

EF Core 5.0

» Using ToQueryString to get generated SQL

» CreateDbCommand: I'll see your string and raise you a command...

EF Core Tips

» Make sure to call Update when it is needed!

» Don't call Update when you don't need to!

EF Core 2.x

» Many-to-many relationships - Part 4: A more general abstraction

» Many-to-many relationships - Part 3: Hiding 'as ICollection'

» Many-to-many relationships - Part 2: Hiding 'as IEnumerable'

» Many-to-many relationships - Part 1: The basics

EF Core 1.x

» EF Core 1.1: Looking at your model in the debugger

» Add, Attach, Update, and Remove methods in EF Core 1.1

» Notification entities in EF Core 1.1

» So you want to write an EF Core provider...

» Implementing provider extension methods in EF Core 1.1

» Internal code in EF Core 1.1

» EF Core 1.1 metadata overview

» Implementing a provider 'Use...' method for EF Core 1.1

» EF Core Dependency Injection Internals

» Collection navigation properties and fields in EF Core 1.1

» Dependency Injection in EF Core 1.1

» EF Core 1.1 - Creating DbContext instances

» Provider Building Blocks

Software development

» Moving to Linux - Part 4: Conclusions

» Moving to Linux - Part 3: Installation and day-to-day use

» Moving to Linux - Part 2: My life in operating systems

» Moving to Linux - Part 1: Background and first impressions

» Today was a good day at work

» Why Your Feedback Is So Important

EF6 and earlier

» EF 6.1: Creating indexes with IndexAttribute

» EF 6.1: Turning on logging without recompiling

» EF6 release dates…or lack thereof

» Database initializer and Migrations Seed methods

» EF6 SQL Logging – Part 3: Interception building blocks

» EF6 SQL Logging – Part 2: Changing the content/formatting

» EF6 SQL Logging - Part 1: Simple Logging

» EF6: Nested types and more for Code First

» EF enums and spatial types on .NET 4

» EF6 Extensibility and Configuration

» Why open sourcing Entity Framework is a great move

» So you want to contribute to EF? Part 5: High-level architecture

» So you want to contribute to EF? Part 4: Developer experience

» So you want to contribute to EF? Part 3: Testing

» So you want to contribute to EF? Part 2: The code

» So you want to contribute to EF? Part 1: Introduction

» Deleting orphans with Entity Framework

» The key to AddOrUpdate

» Code First model builder versions

» Code First building blocks

» Code First Data Annotations on non-public properties

» EF5: Rejecting changes to a single property

» Secrets of DetectChanges - Part 4: Binary properties and complex types

» Secrets of DetectChanges - Part 3: Switching off automatic DetectChanges

» Secrets of DetectChanges - Part 2: When is DetectChanges called automatically?

» Secrets of DetectChanges - Part 1: What does DetectChanges do?

» Code First Migrations: Making __MigrationHistory not a system table

» Don't use Code First by mistake

» Why Entity Framework is releasing on NuGet only

» EF 4.3 Beta 1: What happened to that EdmMetadata table?

» What's the deal with mapping foreign keys using the Entity Framework?

» Should you use Entity Framework change-tracking proxies?

» Entity types supported by the Entity Framework

» Why are the DbContext T4 templates so different from the EF4 POCO templates?

» EF 4.1 Quick Tip: Add/Attach returns your entity

» Code First: Inside DbContext Initialization

» A Brief History of EF 4.1

» Code First: What is that EdmMetadata table?

» Rejecting changes to entities in EF 4.1

» Configuring Database Initializers in a config file

» A more general Queryable collection

» LazyCountCollection with better performance

» Extra-lazy collection count with EF 4.1 (Part 2)

» Extra-lazy collection count with EF 4.1 (Part 1)

Other things

» Hacking my Sixth Form College network in 1991

» Welcome to One Unicorn 2.0!

» Soft Oatmeal Cookies

» Lego Mindstorms 360° Photobot for Gear VR

» After wearing ourselves out in the real world, my daughter and I...

» Why One Unicorn?


ASCII unicorns originally by Brice Lambson for dotnet-ef. Many thanks to Brice.

This page is up-to-date as of April 10th, 2020. Some things change. Some things stay the same. Use your noggin.