100% found this document useful (5 votes)
60 views

Modern Data Access With Entity Framework Core: Database Programming Techniques For Edition Holger Schwichtenberg

Schwichtenberg

Uploaded by

tsiakadaqui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (5 votes)
60 views

Modern Data Access With Entity Framework Core: Database Programming Techniques For Edition Holger Schwichtenberg

Schwichtenberg

Uploaded by

tsiakadaqui
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Download the full version of the textbook now at textbookfull.

com

Modern Data Access with Entity Framework


Core: Database Programming Techniques for
.NET, .NET Core, UWP, and Xamarin with C# 1st
Edition Holger Schwichtenberg
https://textbookfull.com/product/modern-data-
access-with-entity-framework-core-database-
programming-techniques-for-net-net-core-uwp-and-
xamarin-with-c-1st-edition-holger-schwichtenberg/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Modern Data Access with Entity Framework Core: Database


Programming Techniques for . NET, . NET Core, UWP, and
Xamarin with C# 1st Edition Holger Schwichtenberg
https://textbookfull.com/product/modern-data-access-with-entity-
framework-core-database-programming-techniques-for-net-net-core-uwp-
and-xamarin-with-c-1st-edition-holger-schwichtenberg-2/
textbookfull.com

C 8 0 and NET Core 3 0 Modern Cross Platform Development


Build applications with C NET Core Entity Framework Core
ASP NET Core and ML NET using Visual Studio Code 4th
Edition Mark J. Price
https://textbookfull.com/product/c-8-0-and-net-core-3-0-modern-cross-
platform-development-build-applications-with-c-net-core-entity-
framework-core-asp-net-core-and-ml-net-using-visual-studio-code-4th-
edition-mark-j-price/
textbookfull.com

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/

textbookfull.com

Physics in the Arts 3rd Edition P.U.P.A. Gilbert

https://textbookfull.com/product/physics-in-the-arts-3rd-edition-p-u-
p-a-gilbert/

textbookfull.com
Online Banking Security Measures and Data Protection
Advances in Information Security Privacy and Ethics 1st
Edition Shadi A. Aljawarneh
https://textbookfull.com/product/online-banking-security-measures-and-
data-protection-advances-in-information-security-privacy-and-
ethics-1st-edition-shadi-a-aljawarneh/
textbookfull.com

Harlot Hush 2 1st Edition Mary Elizabeth

https://textbookfull.com/product/harlot-hush-2-1st-edition-mary-
elizabeth/

textbookfull.com

Shifting Corporealities in Contemporary Performance:


Danger, Im/mobility and Politics Marina Gržini■

https://textbookfull.com/product/shifting-corporealities-in-
contemporary-performance-danger-im-mobility-and-politics-marina-
grzinic/
textbookfull.com

Fluid mechanics Second Edition Falkovich

https://textbookfull.com/product/fluid-mechanics-second-edition-
falkovich/

textbookfull.com

Rural People and Communities in the 21st Century


Resilience and Transformation 2nd Edition David L. Brown

https://textbookfull.com/product/rural-people-and-communities-in-
the-21st-century-resilience-and-transformation-2nd-edition-david-l-
brown/
textbookfull.com
Reinventing ITIL® in the Age of DevOps: Innovative
Techniques to Make Processes Agile and Relevant 1st
Edition Abhinav Krishna Kaiser
https://textbookfull.com/product/reinventing-itil-in-the-age-of-
devops-innovative-techniques-to-make-processes-agile-and-relevant-1st-
edition-abhinav-krishna-kaiser/
textbookfull.com
Holger Schwichtenberg

Modern Data Access with Entity


Framework Core
Database Programming Techniques for
.NET, .NET Core, UWP, and Xamarin
with C#
Holger Schwichtenberg
Essen, Germany

Any source code or other supplementary material referenced by the


author in this book is available to readers on GitHub via the book's
product page, located at www.​apress.​com/​9781484235515 . For
more detailed information, please visit www.​apress.​com/​source-code
.

ISBN 978-1-4842-3551-5 e-ISBN 978-1-4842-3552-2


https://doi.org/10.1007/978-1-4842-3552-2

Library of Congress Control Number: 2018947392

© Holger Schwichtenberg 2018

This work is subject to copyright. All rights are reserved by the


Publisher, whether the whole or part of the material is concerned,
specifically the rights of translation, reprinting, reuse of illustrations,
recitation, broadcasting, reproduction on microfilms or in any other
physical way, and transmission or information storage and retrieval,
electronic adaptation, computer software, or by similar or dissimilar
methodology now known or hereafter developed.

Trademarked names, logos, and images may appear in this book.


Rather than use a trademark symbol with every occurrence of a
trademarked name, logo, or image we use the names, logos, and
images only in an editorial fashion and to the benefit of the
trademark owner, with no intention of infringement of the
trademark. The use in this publication of trade names, trademarks,
service marks, and similar terms, even if they are not identified as
such, is not to be taken as an expression of opinion as to whether or
not they are subject to proprietary rights.

While the advice and information in this book are believed to be true
and accurate at the date of publication, neither the authors nor the
editors nor the publisher can accept any legal responsibility for any
errors or omissions that may be made. The publisher makes no
warranty, express or implied, with respect to the material contained
herein.

Distributed to the book trade worldwide by Springer


Science+Business Media New York, 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505,
e-mail [email protected], or visit
www.springeronline.com. Apress Media, LLC is a California LLC and
the sole member (owner) is Springer Science + Business Media
Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware
corporation.
For Heidi, Felix, and Maja
Introduction
I have always been a big fan of object-relational mapping (ORM); in
fact, I developed my own OR mapper for my software development
projects in the early days of .NET. I switched to the ADO.NET Entity
Framework when Microsoft introduced it in .NET 3.5 Service Pack 1.
Nowadays, I prefer its successor, Entity Framework Core.
Interestingly, some of my projects are still running the classic Entity
Framework. As Microsoft continues to do incremental releases of
Entity Framework Core, many of the challenges and gripes
developers had with earlier versions have gone away, so my plan is
to switch the management of all my projects to Entity Framework
Core.
The book you hold in your hands came from an idea I had to
cover all the important database access scenarios. I hadn’t found
much collective information in one place and felt that a compendium
could be of great value to others. In this book, you will be
introduced to database access concepts, get hands-on experience
installing Entity Framework Core, and learn about reverse
engineering and forward engineering for existing or legacy
databases. I’ll delve into topics such as schema migrations, data
reading, and data modification with LINQ, Dynamic LINQ, APIs, SQL,
stored procedures and table-valued functions, object relationships,
and asynchronous programming. I’ll also talk about third-party
products such as LINQPad, Entity Developer, Entity Framework
Profiler, Entity Framework Plus, and AutoMapper.
I’ll discuss how to apply Entity Framework Core through case
studies using Universal Windows Platform (UWP) apps, Xamarin, and
ASP.NET Core. Of course, no book would be complete without
sharing a healthy dose of hard-earned tips and tricks from my
experience with Entity Framework and Entity Framework Core over
the years.

Expectations of the Reader


This book is intended for software developers who have experience
with .NET and C# as well as some relational database experience
and who now want to use Entity Framework Core to create data
access code in .NET, .NET Core, UWP apps, and Xamarin. Previous
knowledge in predecessor technologies such as ADO.NET and the
classic ADO.NET Entity Framework is useful but not necessary to
understand this book.

Programming Language Used in This Book


I chose to use C# in this book because it is by far the most
commonly used programming language in .NET. While I still
occasionally develop .NET applications in Visual Basic .NET, it doesn’t
make sense to print all the listings in both languages.
If you are interested, a language converter between C# and
Visual Basic .NET is freely available on several web sites, including
http://converter.telerik.com and
https://www.mindfusion.eu/convert-cs-vb.html .

The Use of Case Studies and Fictitious Enterprises


Most of the sample code in this book revolves around the fictitious
airline World Wide Wings, abbreviated as WWWings or just WWW
(see Figure 1 ).

Figure 1. Logo of the fictional airline World Wide Wings

Note You’ll see other case studies used in some chapters, such
as the task management app MiracleList.

The World Wide Wings use case deals with the following entities :
Flights between two places where the places were deliberately
not modeled as separate entities but as strings (this simplifies
the understanding of many examples).
Passengers flying on a flight.
Employees of the airline, who have supervisors who are also
employees.
Pilots as a specialization of employees. A flight has only one
pilot. There are no copilots at World Wide Wings .
Persons as a collection of common characteristics for all people
in this example. A person is not available on their own, but only
in one of three specializations: passenger, employee, and pilot.
In the object-oriented sense, therefore, Person is an abstract
base class that cannot own instances but is used only for
inheritance.
The World Wide Wings use case has two data models, explained
here:
The slightly simpler model version 1 (see Figures 2 and 3 ) is
the result of classic relational database design with
normalization. The object model is created by reverse
engineering.
Figure 2. World Wide Wings data model in the simpler version 1
Figure 3. Object model of the World Wide Wings data model in the simpler
version 1

Model version 2 (see Figures 4 and 5 ) is the result of forward


engineering with Entity Framework Core from an object model.
In addition, there are other entities ( Airline ,
Persondetail , AircraftType , and
AircraftTypeDetail ) in this model to show further
modeling aspects. In this case, there is an optional copilot for
each flight.
In model version 1 there is a separate table for people (called
Person ), staff, pilots, employee, and passengers. This separation
corresponds to the classes in the object model.
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Figure 4. World Wide Wings data model in the more complex version 2
Figure 5. Object model for the World Wide Wings data model in the more complex
version 2

Note The object models that were created in this book for the
data models do not represent an ideal object model because
Entity Framework Core does not support some mapping
capabilities, such as N:M mapping, yet.
The object model for the data schema of World Wide Wings
version 6.1 (Figure 3 ) was automatically generated by the Entity
Framework Core from the database (through reverse
engineering); I deliberately did not change it, even if some of the
generated names are ugly.
In model version 2, there are only the Passenger and Employee
tables for these four entities. Entity Framework Core is currently
somewhat limited and does not support table per type mapping (a
separate table for each class). Therefore, the table Passenger also
includes all the characteristics of Person . In addition to the
Person properties, the Employee table includes the properties of
the Employee and Pilot entities. In the table, a Discriminator
column distinguishes between records that are an employee and
those that are a pilot. Entity Framework Core mixes the concepts of
table by concrete type (TPC) and table by hierarchy (TPH). The
developer has no definite influence on the inheritance mapping in
Entity Framework Core 1. x /2.0. The classic Entity Framework offers
more options here.
The following are the extra dependencies in model version 2:
A Flight belongs to Airline (there will be only World Wide
Wings and its subsidiary Never Come Back Airline in this book).
There a Copilot entity here, but it is optional.
A Flight can optionally have an AircraftType object
assigned. AircraftType must have an
AircraftTypeDetail object.
Each Person and therefore each Pilot and Passenger must
own a Persondetail object.
In this book, both data models are used, partly in modified form,
to show certain scenarios (for example, database schema
migrations).

Application Types in This Book


In this book, the examples are for the most time shown via a text-
based console in console applications because this allows me to
focus on database access. When using graphical user interfaces such
as WPF, Windows Forms, ASP.NET Web Forms, or ASP.NET MVC, the
representation is decoupled by data binding, which means I would
always need to show a second listing so you could understand that
the data access was actually delivered. I simulate user inputs in the
console examples by writing variables at the beginning of the
program code.
I have provided training and consultancy on data access for
many years and have learned that console editions are didactically
the best tool for teaching because otherwise the listings are large
and thus inferior.
Of course, console output is not common practice in 99 percent
of software development, but graphical user interfaces are covered
in other books, and data binding typically has no impact on the form
of data access. Where data access is relevant, this book will also
show data binding examples.

Helper Functions for Console Output


I will show the screen output on the console using the standard
method Console.WriteLine() in several places; in addition, I
use auxiliary routines that generate colored screen output. Listing 1
shows these auxiliary routines in the class CUI from
ITV_DemoUtil.dll for a better understanding.

using System;
using System.Runtime.InteropServices;
using System.Web;
using ITVisions.UI;
using System.Diagnostics;

namespace ITVisions
{
/// <summary>
/// Helper utilities for Console UIs
/// (C) Dr. Holger Schwichtenberg 2002-2018
/// </summary>
public static class CUI
{
public static bool IsDebug = false;
public static bool IsVerbose = false;

#region Print only under certain conditions


public static void PrintDebug(object s)
{
PrintDebug(s, System.Console.ForegroundColor);
}

public static void PrintVerbose(object s)


{
PrintVerbose(s, System.Console.ForegroundColor);
}
#endregion

#region Print with predefined colors


public static void MainHeadline(string s)
{
Print(s, ConsoleColor.Black, ConsoleColor.Yellow);

}
public static void Headline(string s)
{
Print(s, ConsoleColor.Yellow);
}
public static void HeaderFooter(string s)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(s);
Console.ForegroundColor = ConsoleColor.Gray;
}

public static void PrintSuccess(object s)


{
Print(s, ConsoleColor.Green);
}

public static void PrintStep(object s)


{
Print(s, ConsoleColor.Cyan);
}

public static void PrintDebugSuccess(object s)


{
PrintDebug(s, ConsoleColor.Green);
}

public static void PrintVerboseSuccess(object s)


{
PrintVerbose(s, ConsoleColor.Green);
}

public static void PrintWarning(object s)


{
Print(s, ConsoleColor.Cyan);
}

public static void PrintDebugWarning(object s)


{
PrintDebug(s, ConsoleColor.Cyan);
}

public static void PrintVerboseWarning(object s)


{
PrintVerbose(s, ConsoleColor.Cyan);
}

public static void PrintError(object s)


{
Print(s, ConsoleColor.White, ConsoleColor.Red);
}

public static void PrintDebugError(object s)


{
PrintDebug(s, ConsoleColor.White, ConsoleColor.Red);
}
public static void PrintVerboseError(object s)
{
Print(s, ConsoleColor.White, ConsoleColor.Red);
}

public static void Print(object s)


{
PrintInternal(s, null);
}
#endregion

#region Print with selectable color

public static void Print(object s, ConsoleColor


frontcolor, ConsoleColor? backcolor = null)
{
PrintInternal(s, frontcolor, backcolor);
}

public static void PrintDebug(object s, ConsoleColor


frontcolor, ConsoleColor? backcolor = null)
{
if (IsDebug || IsVerbose) PrintDebugOrVerbose(s,
frontcolor, backcolor);
}

public static void PrintVerbose(object s, ConsoleColor


frontcolor)
{
if (!IsVerbose) return;
PrintDebugOrVerbose(s, frontcolor);
}
#endregion

#region Print with additional data

/// <summary>
/// Print with Thread-ID
/// </summary>
public static void PrintWithThreadID(string s,
ConsoleColor c = ConsoleColor.White)
{
var ausgabe = String.Format("Thread #{0:00} {1:}:
{2}", System.Threading.Thread.CurrentThread.ManagedThreadId,
DateTime.Now.ToLongTimeString(), s);
CUI.Print(ausgabe, c);
}

/// <summary>
/// Print with time
/// </summary>
public static void PrintWithTime(object s,
ConsoleColor c = ConsoleColor.White)
{
CUI.Print(DateTime.Now.Second + "." +
DateTime.Now.Millisecond + ":" + s);
}

private static long count;


/// <summary>
/// Print with counter
/// </summary>
private static void PrintWithCounter(object s,
ConsoleColor frontcolor, ConsoleColor? backcolor = null)
{
count += 1;
s = $"{count:0000}: {s}";
CUI.Print(s, frontcolor, backcolor);
}

#endregion

#region internal helper routines


private static void PrintDebugOrVerbose(object s,
ConsoleColor frontcolor, ConsoleColor? backcolor = null)
{
count += 1;
s = $"{count:0000}: {s}";
Print(s, frontcolor, backcolor);
Debug.WriteLine(s);
Trace.WriteLine(s);
Trace.Flush();
}

/// <summary>
/// Output to console, trace and file
/// </summary>
/// <param name="s"></param>
[DebuggerStepThrough()]
private static void PrintInternal(object s,
ConsoleColor? frontcolor = null, ConsoleColor? backcolor =
null)
{
if (s == null) return;

if (HttpContext.Current != null)
{
try
{
if (frontcolor != null)
{
HttpContext.Current.Response.Write("<span
style='color:" + frontcolor.Value.DrawingColor().Name +
"'>");
}
if
(!HttpContext.Current.Request.Url.ToString().ToLower().Contai
ns(".asmx") &&
!HttpContext.Current.Request.Url.ToString().ToLower().Contain
s(".svc") &&
!HttpContext.Current.Request.Url.ToString().ToLower().Contain
s("/api/")) HttpContext.Current.Response.Write(s.ToString() +
"<br>");
if (frontcolor != null)
{
HttpContext.Current.Response.Write("</span>");
}
}
catch (Exception)
{
}
}
else
{
object x = 1;
lock (x)
{
ConsoleColor altefrontcolor =
Console.ForegroundColor;
ConsoleColor alteHfrontcolor =
Console.BackgroundColor;

if (frontcolor != null) Console.ForegroundColor =


frontcolor.Value;
if (backcolor != null) Console.BackgroundColor =
backcolor.Value;

Console.WriteLine(s);
Console.ForegroundColor = altefrontcolor;
Console.BackgroundColor = alteHfrontcolor;
}
}
}
#endregion

#region Set the position of the console window


[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr GetConsoleWindow();
private static IntPtr MyConsole = GetConsoleWindow();

[DllImport("user32.dll", EntryPoint = "SetWindowPos")]


Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
public static extern IntPtr SetWindowPos(IntPtr hWnd,
int hWndInsertAfter, int x, int Y, int cx, int cy, int
wFlags);

// Set the position of the console window without size


public static void SetConsolePos(int xpos, int ypos)
{
const int SWP_NOSIZE = 0x0001;
SetWindowPos(MyConsole, 0, xpos, ypos, 0, 0,
SWP_NOSIZE);
}

// Set the position of the console window with size


public static void SetConsolePos(int xpos, int ypos,
int w, int h)
{
SetWindowPos(MyConsole, 0, xpos, ypos, w, h, 0);
}
#endregion
}
}

Listing 1 Class CUI with Subroutines for Screen Output to the Console

Access to Code Examples, Updates, and Figures on


GitHub
You can download all the examples for this book as Visual Studio
projects via the book’s product page, located at
www.apress.com/9781484235515 . This page will also point you
to additional complementary content on Entity Framework Core
updates, discussion, and errata.
Microsoft continues to release incremental updates to Entity
Framework Core and readily admits the following: “These are things
we think we need before we can say EF Core is the recommended
version of EF for everyone” (
https://github.com/aspnet/EntityFrameworkCore/wiki
/roadmap ). To help make sense of the changes coming in 2.1, you
can find this book’s Appendix C, which outlines new features, on the
book’s GitHub repository.
You can also find information on the book page I maintain at
www.efcore.net .
Please note that not every single line of program code in this
book is included in the downloadable projects. This book also
discusses alternative solutions for individual cases that do not
necessarily fit into a total solution.

Visual Studio Content


Solution
EFC_WWWings Most examples of this book, based on the World Wide
Wings scenario.
EFC_UWP_SQLite Sample application MiracleList Light as a UWP app for
and Windows 10 and cross-platform app for iOS, Android,
EFC_Xamarin_SQLite
and Windows 10. The app stores data using Entity
Framework Core in SQLite.

EFC_Countries_NMSelf Country border example from Appendix A .

The figures that appear in this book are available for download as
well, which will allow you to see them in a larger, color format.
Now that you have been introduced to the plan for the book, the
mock company I’ll be using, and the location for all the code, let’s
get started on your Entity Framework Core learning journey!
Thank you for reading my book, and I welcome any comments
and feedback at [email protected] .
Table of Contents
Chapter 1:​Introducing Entity Framework Core

What Is an Object-Relational Mapper?​

OR Mappers in the .​NET World

Version History of Entity Framework Core

Supported Operating Systems

Supported .​NET Versions

Supported Visual Studio Versions

Supported Databases

Features of Entity Framework Core

Functions That Have Been Eliminated

Missing Critical Features

High-Priority Features

New Features in Entity Framework Core

When to Use Entity Framework Core

Chapter 2:​Installing Entity Framework Core

NuGet Packages

Installing the Packages

Updating to a New Version


Chapter 3:​Concepts of Entity Framework Core

Process Models for Entity Framework Core

Components of Entity Framework Core

Chapter 4:​Reverse Engineering of Existing Databases


(Database First Development)

Using Reverse Engineering Tools

Reverse Engineering with PowerShell Cmdlets

Generating Code

Looking at the Generated Program Code

Seeing an Example Client

Using the .​NET Core Tool dotnet

Understanding the Weaknesses of Reverse Engineering

Chapter 5:​Forward Engineering for New Databases

Two Types of Classes

Examples in This Chapter

Rules for Self-Created Entity Classes

NuGet Packages

Data Annotation Properties

Data Types

Relationships (Master-Detail)
Random documents with unrelated
content Scribd suggests to you:
Molded Polystyrene Resins.
Source: Bakelite Corporation, 247 Park Avenue, New York, N. Y.

Small quantities of Resoglas and Trolitul have been imported from


Germany in recent years. Table 9 shows the quantities imported in
recent years.
Table 9.—Resoglas and Trolitul: United States imports for
consumption, 1933-37

Resoglas (polystyrol) Trolitul


Year
Quantity Value Unit value Quantity Value Unit value
Pounds Pounds
1933 771 (1) 672 (1)
1934 991 (1) 200 (1)
1935 110 $97 $0.88 4,608 $3,782 $0.82
1936 2,220 1,901 .86 4,671 3,641 .78
19372 None None 6,788 4,077 .60

1 Not available.

2 Preliminary.

Source: Analyses of invoices of paragraph 28, act of 1930—U. S. Tariff


Commission.

With the more advanced development of polystyrol resins in


Germany prior to 1938, evidenced by larger commercial production,
by wider application, by the marketing of a water-white product at a
considerably lower price, it might be expected that imports into the
United States would have been in considerably larger amount than
shown in table 9. That they were small was probably due to the high
rate of duty which made them expensive as compared with other
synthetic resins in the United States and thus limited their market to
uses in which the others were less satisfactory. Resoglas was
reported to have been selling for 40 cents per pound in Germany.
The imported resin is assessed for duty under the provisions of
paragraph 28 of the Tariff Act of 1930 at 45 percent ad valorem
based on American selling price (as a competitive product) and 7
cents per pound. The American selling price of the resin made in the
United States until late in 1937, as determined by the Bureau of
Customs, Treasury Department, was $1.85 per pound. The duty was
therefore 90 cents per pound. Imports of Trolitul were valued at 75
cents per pound, giving a cost of $1.75 per pound laid down, duty
paid, in domestic markets. With the present American selling price of
72 cents per pound, the duty would be approximately 36 cents per
pound.
10. VINYL RESINS
Vinyl acetate, vinyl chloride, and to a lesser extent vinyl
chloroacetate, are the raw materials (monomers) for the several vinyl
resins commercially produced in the United States, Canada, and
Germany. These are all esters of the hypothetical vinyl alcohol and
are made by the action of acetic and hydrochloric acids on
acetylene.
The spontaneous polymerization of vinyl derivatives has been
known for many years, although its significance and industrial
application have been realized only recently. Vinyl acetate, probably
the most important of the vinyl esters, was discovered in 1912 and
first made in Canada in 1917.
Vinyl resins may be classified into (a) polyvinyl acetate, (b)
copolymers of vinyl acetate and vinyl chloride, (c) polyvinyl chloride,
and (d) polyvinyl chloroacetate.

Description and uses.


Polyvinyl acetate resins.—The several commercial types of vinyl
acetate resins are marketed under the trade names Vinyloid A, Alvar,
Gelva, Formvar, and Mowilith. The first of these is a product of
Carbide and Carbon Chemicals Co., New York, the next three are
products of Shawinigan Chemicals Limited, Shawinigan Falls,
Canada, and the last is made by the Interessen Gemeinschaft
Industrie A. G., Germany. Vinyloid A and Gelva represent the
simplest series of vinyl acetate resins and are made by polymerizing
the monomer. The softening point and viscosity of the polyvinyl
acetate resins increase with higher polymerization. Such resins are
colorless, tasteless, odorless, thermoplastic products. They are
soluble in coal-tar solvents and are compatible with certain alkyd
resins, tar-acid resins, and natural resins. Films of polyvinyl acetate
resin are not discolored by exposure, and after irradiation they
become opaque to ultraviolet light, are hard and tough, and have
good adherence and endurance. Their dielectric strength is good
and they do not show a carbon track after the passage of an electric
arc. Various grades having softening points from 80° to 200° C. are
available.
Polyvinyl acetate resins are used in making transparent papers,
paper to metal laminations, glassine papers for food packaging, as a
substitute for chicle in chewing gum, and as a component of paints,
varnishes, and lacquers. They have the desirable properties of
compatibility, durability, resistance to abrasion, and rust inhibition in
the surface-coating use. Having the same refractive index as pyrex
glass, they leave no line of demarcation when used as a cement for
that material. They have been used to stiffen toe-caps in shoes and
articles made from paper pulp suspensions. Gelvas are not molded
as such because of their tendency to cold flow. They are used,
however, as a binder for ground mineral fillers in advertising signs
and for wood flour in molded artificial wood carvings. In nitrocellulose
lacquers they improve the adhesion, luster, and toughness.
Alvars are made by replacing part or all of the acetate groups in
Gelva with acetaldehyde. Their viscosity varies with the degree of
polymerization and their properties vary according to the extent of
replacement of the acetate groups. The Alvar types do not cold flow
when molded, are tougher, harder, and have better adhesion but are
less resistant to weathering than the Gelva types. Other properties
are about the same as those of the Gelvas. Alvars having 70 to 80
percent acetate group replacement are used chiefly in spirit type
varnishes, lacquers, and enamels that must stand exposure to
weather. Another Alvar type is used in injection and press molding.
The high binding power of the resin permits the use of large
percentages of filler without loss of desirable properties. Such
moldings may be machined and polished, and take inserts, such as
the wood core in shoe heels. Flexible phonograph and transcription
records made from the Alvars have gained wide approval. An 85
percent (acetate replacement) type has better impact strength and is
used in toilet articles. Sheets, rods, and tubes of this resin may be
machined in much the same way as nitrocellulose plastic and used
where noninflammability is an asset.
Formvars are made by replacing part or all of the acetate groups
in Gelva with formaldehyde. These resins are colorless, odorless,
tasteless, and thermoplastic. They have higher softening points and
greater tensile and impact strength than the Alvars. They are
resistant to alcohols, coal-tar solvents, fats, oils, or water. Moisture
transmission rate through a film of this resin is about one-tenth that
through regenerated cellulose and one-fourth that through cellulose
acetate.
The grades of the Formvars available are designated by the extent
of replacement of the acetate group. The 75-percent replacement
type has excellent mechanical strength and flexibility and is
unaffected by sunlight. Formvars of 95 percent acetate displacement
have a tensile strength as high as 10,000 pounds per square inch
and offer possibilities in the manufacture of artificial silk and
photographic film.
The vinyl resins have made possible a new type of safety glass
superior to any heretofore marketed. By condensing butylaldehyde
with vinyl acetate, a polymer is obtained which is used as the inner
layer between two sheets of glass. Heat and pressure secure
complete adhesion and yield a sheet with greater resistance to
breakage at low temperatures than the types now in general use.
Although safety glass was invented in 1905, and many substitutes
for the original nitrocellulose inner layer have been proposed, only
two reached commercial importance before the development of the
vinyl resins. These are cellulose acetate and the acrylate resins.
Safety glass used in automobile windshields up to about 1930
discolored after a year or two of service. This discoloration was due
to the action of the actinic rays of the sun on the nitrocellulose layer.
Since 1930 this difficulty has been largely overcome by using an
actinic ray filter glass (a special glass with a high iron content) in
front of the nitrocellulose sheet, or by using cellulose acetate, which
is not discolored to the same extent by light, as a substitute for
nitrocellulose. Both cellulose nitrate and cellulose acetate, however,
have a tendency to lose toughness and strength at low
temperatures, to absorb moisture, and to separate from the glass
around the edge unless sealed, and to lose their plasticizer and
shrink.
Although a vast improvement over ordinary plate glass, laminated
glass made with cellulose nitrate or acetate has the serious defect of
being brittle at low temperatures, such as prevail in the winters of
northern States. It is easily shattered at zero Fahrenheit, while at 60°
F. and above it is quite strong. This shortcoming led to the
development of the vinyl resin sheet for safety glass with a
remarkable degree of toughness. At normal temperatures it has
rubberlike toughness which, although decreased at low
temperatures, is not punctured by the impact of a half-pound steel
ball falling from a 30-foot height at minus 10° F., whereas
nitrocellulose or acetate laminated glass withstands the impact of a
fall from not greater than one-tenth this height. A further advantage
of the vinyl sheet is that it is water resistant, making the sealing of
the edges of the glass unnecessary and thus reducing costs.
Exposure to ultraviolet light in Florida sunlight for more than 2 years
did not discolor it.
The many desirable properties of the vinyl resins, as outlined
above, indicate their widespread use in laminated safety glass when
it is available in sufficient quantities. It is estimated that our annual
output of safety glass interlayer sheets exceeds 17,000,000 pounds,
of which 25 to 30 percent are for windshields, and 70 to 75 percent
for side and back windows of automobiles.
At least one of the series of Mowiliths made in Germany is
polymerized vinyl acetate. It is recommended as an ingredient of
water-white lacquers. It is compatible with nitrocellulose and is
extremely durable and not disintegrated or discolored on exposure to
weather.
Copolymers of vinyl acetate and vinyl chloride.—The simultaneous
polymerization of mixtures of vinyl acetate and vinyl chloride yields
resins with the desirable properties of the two reactants. The extent
of plasticity is largely controlled by varying the ratio of the vinyl
derivatives. Resins high in vinyl chloride content are better suited to
molding, and those high in vinyl acetate are better lacquer
ingredients. These resins are marketed as Vinylites by the Carbide
and Carbon Chemicals Co., New York. They are thermoplastic,
odorless, tasteless, and practically nonflammable. Their outstanding
properties are resistance to water, soap, acids, alkalies, and alcohol,
and their strength and good dielectric properties. Their stability to
light is improved by the addition of ultraviolet absorbing compounds
and their stability to heat by the addition of lead oleate, calcium
stearate, or other bases. Water absorption and compatibility with
other resins is increased as the chloride content increases.
The principal types of copolymers are:
Vinylite VYN, high molecular weight. This resin is used in dentures
where good fatigue resistance, impact strength, and tensile strength
are required. It contains 85 to 88 percent vinyl chloride.
Vinylite VYN, medium molecular weight. This resin is used in
general molding and extending applications including sheets, rods,
and tubes. Its vinyl chloride content averages 85 to 88 percent.
Vinylite VYN, low molecular weight. This resin is used in moldings,
coated paper, lacquers, floor tile, phonograph records, and felt
impregnation. It contains 85 to 88 percent vinyl chloride.
Vinylite VYC. This resin of low molecular weight is compatible with
nitrocellulose and is used in lacquers and finishes for industrial
applications. Lacquers from the Vinylites are called Vinyloids.
The Vinylites for molding are thermoplastic and shrink very little,
making them applicable to large moldings. They may be used in
extension processes such as tooth-brush preforms, pipe lining, and
wall trim. Fillers and pigments may be added, although pigments
containing iron and zinc have harmful effects on the stability of the
resin. The fillers used are wood flour, mica, talc, and alpha cellulose.
Fillers reduce the mechanical strength of the resin and lessen its
resistance to water. Plasticizers, such as dibutyl phthalate or tricresyl
phosphate, give a softer, more flexible resin. Resins from the
copolymers resemble the cellulose derivatives in their molding
characteristics, mechanical strength, and appearance.
In lacquers the Vinylites offer high resistance to water, oils, and
chemicals. The drying of such lacquers is by evaporation rather than
by oxidation. They are suitable for lining food containers, coating
concrete, coating paper for bottle cap liners, and as a stiffener for
box toes of shoes. Their most successful application at present is as
an inside coating for beer cans. Floor tile containing these resins
mixed with slate flour or other filler has good possibilities.
Polyvinyl chloride resins.—Vinyl chloride may be polymerized to
give nonflammable resins of varying solubilities. The completely
polymerized resin is practically insoluble at ordinary temperatures
and is used as a rubber substitute. It is marketed as Koroseal by B.
F. Goodrich Rubber Co., Akron, O. Compared with natural rubber, it
has greater resistance to acids, alkalies, oils, and alcohol, more
flexing life, better resistance to sunlight, water, and oxidation.
Solutions of this resin marketed as Korolac are used in special types
of varnishes.
Polyvinyl chloroacetate resins.—These resins known as Mowiliths
are made in Germany. Application is largely for surface coating.
Practically no information on this type is available.
Divinyl acetylene and synthetic rubber.—Two products closely
related to those described above but probably not synthetic resins as
defined for this discussion are divinyl acetylene, a synthetic drying
oil, and Neoprene, a synthetic rubber.
Acetylene, when passed into a solution of copper chloride and
ammonium chloride, combines with itself. When two molecules of
acetylene react monovinyl acetylene is formed, and when three
molecules of acetylene react divinyl acetylene is formed. Monovinyl
acetylene reacts with hydrochloric acid to give chloroprene, which is
polymerized to synthetic rubber or Neoprene.
Divinyl acetylene is a colorless liquid which darkens on exposure
to light and which has an onionlike odor. When polymerized liquids
are formed, then as the reaction progresses viscous products and
finally insoluble, infusible, inert resins. By arresting the reaction
before the gel point is reached, an amber colored heavy liquid,
soluble in aromatic hydrocarbons, is obtained. Since divinyl
acetylene will continue to polymerize at ordinary temperatures, this
property is taken advantage of in using it as a basis for paints, under
the name “synthetic drying oil.” Clear, amber films are obtained from
solutions of this oil in solvent naphtha. Divinyl acetylene is quick
drying, is many times more impervious to moisture than linseed oil,
and is thermosetting. It is not attacked by solvents but is attacked by
strong oxidizing agents, and the gelled material may ignite
spontaneously.
Although not classified as a resin, synthetic rubber is discussed
here because of its close chemical relationship to the vinyl resins. It
is made commercially by E. I. du Pont de Nemours & Co.,
Wilmington, Del., and is marketed as Neoprene. It is sold as a plastic
polymer which is vulcanized and processed much the same as
natural rubber except that sulphur is not essential to vulcanization.
Synthetic rubber is higher in price than natural rubber, but it has
certain properties which make it suitable for service conditions where
natural rubber is unsatisfactory. Among these properties are its
resistance to gasoline, oils, and greases, and to elevated
temperatures. It does not check or crack on exposure to sunlight, nor
does it oxidize as rapidly as natural rubber. Its principal applications
are in special gaskets, printing rolls, jackets for high tension cable,
linings for gasoline or oil hose lines, balloon fabrics, diaphragms for
regulators, and packing for compressors. Its existence acts as a limit
to the increase in the price of natural rubber and assures a supply in
emergencies.

Production in the United States.


Some of the products described are commercially produced in the
United States; others in Canada or in Germany. Those made in the
United States are usually not made by more than one firm, so that
statistics of production and sales are not publishable. The vinyl
acetate resins have been produced principally in Canada; the
copolymers of vinyl chloride and vinyl acetate are domestic products.
In 1935 the United States output of all vinyl resins exceeded
1,000,000 pounds, a figure that was increased in 1936 and 1937.
The Canadian output of Gelva and Alvar has reached commercial
quantities; that of Formvar is still confined to experimental plant lots.
The acceptance of vinyl resin sheets for safety glass will greatly
increase the output in 1938. The basic patent, known as the
Morrison-Blaike patent, United States No. 2,036,092 issued on
March 31, 1936, is owned by Shawinigan Chemicals, Ltd., Montreal,
Canada, who have licensed several domestic producers. The
monomer (vinyl acetate) is now produced at Niagara Falls, N. Y., by
the Niacet Chemicals Corp., which is jointly owned by this Canadian
firm, Carbide and Carbon Chemicals Corporation, and E. I. du Pont
de Nemours & Co. It is also produced by du Pont at Belle, W. Va. It
is shipped, in tank cars, to polymerization and sheet-forming plants
at Indian Orchard, Mass., Arlington, N. J., and Charleston, W. Va.
The Indian Orchard plant, known as the Shawinigan Resin Products
Co., and jointly owned by the Canadian firm and the Fiberloid
Corporation, is now in operation. The plant of the du Pont Company
at Arlington, N. J., began production in May 1938, and that of
Carbide and Carbon Chemicals Corp, at Charleston, W. Va., is in
production. These plants have a combined annual capacity of about
10 million pounds of vinyl resin sheets. According to present plans
this new safety glass will be available for 1939 model automobiles.
The resin sheet to be used is 0.0015 inch thick as compared with the
0.0025 inch thickness of the present cellulose acetate and
nitrocellulose sheet. Several trade names have been adopted for the
vinyl resin sheets, among which are Vinylite X, and Butvar. The
licenses granted to domestic makers under the Morrison-Blaike
patent also permit them to make vinyl acetate resins for purposes
other than safety-glass sheets. Considerable progress has been
made in adapting these resins to injection molding operations for the
production of tooth-brush handles, combs, closures, and other parts.

Imports into the United States.


The official statistics of imports of vinyl resins prior to 1936 are not
satisfactory for purposes of comparison. Imports could be entered
under either paragraph 2 or paragraph 11 and could be included
either with the statistics of imports of vinyl acetate (see table 91,
page 141) or be thrown into a general group of non-coal-tar synthetic
gums and resins, n. s. p. f., which in addition to vinyl resins would
include the acrylates and ureas. Table 10 gives imports of synthetic
resins under paragraph 11 of the Tariff Act of 1930.

Table 10.—Synthetic resins classified under paragraph 11:1 United


States imports for consumption 1931-37

Year Quantity Value Unit value


Pounds
1931 453 $173 $0.38
1932 454 29 .06
1933 1,120 496 .44
1934 4,084 1,576 .39
1935 3,105 1,804 .58
1936 146 65 .45
19372 1,963 439 .22

1 Statistical classification 838.914, synthetic gums and resins, n. s. p. f. (not coal


tar) 1931-35; 838.939 same, other than those in chief value of vinyl acetate, 1936
and 1937.
2 Preliminary.

Source: Compiled by the U. S. Tariff Commission from official statistics of the U.


S. Department of Commerce.

A better idea of the imports of vinyl resins prior to 1936 is obtained


by an invoice analysis of imports through the Port of New York under
paragraphs 2 and 11. Table 11 shows imports of vinyl acetate resins
based on such an analysis for 1934 and 1935 and on official
statistics for the years 1936 and 1937.
Similarly table 12 shows imports of Mowilith resins based upon
import analysis for the period 1932-1935, and upon official statistics
for 1936 and 1937.

Table 11.—Vinyl acetate resins: United States imports for


consumption, 1934-37

Year Quantity Value Unit value


Pounds
19341 42,000
19351 240,000
19362 600,808 $144,782 $0.24
193723 652,730 201,213 .31

1 Invoice analysis of imports entered through the New York customs district.

2 Statistical classification 817.58 (par. 2), vinyl acetate, polymerized, and


synthetic resins made in chief value from vinyl acetate, n. s. p. f. (excluding
imports from Germany) and 838.938 (par. 11), synthetic resins made in chief value
from vinyl acetate, n. e. s.
3 Preliminary.

Source: Compiled by the U. S. Tariff Commission from official statistics of the U.


S. Department of Commerce.

Table 12.—Mowilith resins: United States imports for consumption,


1932-37

Year Quantity Value Unit value


Pounds
19321 555 $229 $0.41
19331 741 247 .33
19341 2,950 1,668 .57
19351 3,372 3,175 .94
19362 7,056 2,410 .34
193723 220 308 1.40

1 Analysis of invoices of imports entered through the New York customs district.

2 Imports from Germany under statistical classification 817.58 (par. 2), vinyl
acetate, polymerized, and synthetic resins made in chief value of vinyl acetate.
3 Preliminary.

Source: Compiled by the U. S. Tariff Commission from official statistics of the U.


S. Department of Commerce.

Prior to January 1, 1936, the rate of duty on imports of vinyl resins


was 6 cents per pound and 30 percent ad valorem under paragraph
2, and 4 cents per pound and 30 percent ad valorem under
paragraph 11 of the Tariff Act of 1930. Under the terms of the trade
agreement with Canada, the duty under both paragraphs was
reduced to 3 cents per pound and 15 percent ad valorem. This rate
was generalized to the other countries from which we have received
imports, with the exception of Germany.

Exports from the United States.


Exports of vinyl resins are not separately shown in official
statistics.
11. OTHER SYNTHETIC RESINS
The synthetic resins already discussed are those in substantial
commercial production but, by no means, the only ones known or
produced. Several thousand new ones have been reported and the
search continues in laboratories throughout the world. A successful
new product must be one made from inexpensive raw materials or
must possess some property or advantage that will permit its sale at
a price level above that of other resins.
No attempt is here made to list the host of less important resins.
Certain ones of unusual interest or possessing unique properties are
described below. These include resins obtained from adipic acid,
aniline, citric acid, diphenyl, furfural, lignin, sugar, and sulphonamide.

Adipic acid resins.


The resins from adipic acid are classed as alkyd resins. Those
obtained by the condensation of adipic acid and glycerin are soft and
rubbery and are used to some extent in surface coatings and in
photographic films. In these the resin is formed in three stages as in
other alkyd types: A soluble liquid, a viscous rubbery product, and a
form insoluble in the usual solvents.
Commercial domestic production of these resins was reported for
the first time in 1935 and the output has increased each year since
then.

Aniline resins.
Resins obtained by condensing aniline and formaldehyde have
been developed in recent years. Much of the research on this type of
resin was done in Switzerland by the Ciba Co., which holds a
number of patents on it. The Swiss product, called Cibanite, has
excellent electrical and mechanical properties. At least one domestic
manufacturer is licensed under the Swiss-owned patents.

Citric acid resins.


Considerable interest has recently been manifest in synthetic
resins derived from citric acid. The sharp decline in the price of citric
acid, as a result of large scale synthesis from sugar has placed it
within the realm of possibility as a raw material for synthetic resins.
The citric acid resins, classed as alkyd resins, are obtained by
condensing citric acid and glycerin. Commercial production is said to
have started in Europe, but there is no known domestic production
as yet.

Diphenyl resins.
A series of products known as Aroclors and made by chlorinating
diphenyl are available in commercial quantities.
Diphenyl was commercially produced for the first time by Swann
Research, Inc., at Anniston, Ala., about 1928. The demand for it as a
heat-transfer medium resulted in large scale output. Later it was
found that certain of the chlorinated compounds of diphenyl possess
valuable resin properties.
The Aroclors range from a clear mobile oily liquid to an amber
colored transparent solid. They are thermoplastic, do not polymerize
or oxidize, and are therefore nondrying. They may be dissolved in
varnish oils, such as tung oil and linseed oil, to give varnishes which
are resistant to alkali and water. The diphenyl resins are good
adhesives on metal and glass and give strong joints between such
surfaces. They have a high dielectric constant, resistivity, and a low
power factor. Their chief use is in wire insulation.
The domestic production of chlorinated diphenyls is, at present,
solely by the Monsanto Chemical Company, St. Louis, Mo.
Furfural resins.
Large scale commercial production of furfural, an aldehyde
obtained from oat hulls and other farm waste, has made it available
for synthetic resin manufacture.
Tar-acid furfural resins possess certain outstanding properties,
such as great dimensional accuracy, great reaction speed to the
infusible solid stage, and unusual strength and toughness. They are
available in dark shades only. Printing plates as large as those of
metropolitan daily papers are molded from them as are radio tube
bases, all sorts of electrical parts, and machined parts requiring
great dimensional accuracy. Other uses are in abrasive wheels,
varnishes, and adhesives.
Probably the largest domestic maker of furfural resins is the Durite
Plastics Division of Stokes and Smith Company, Philadelphia, Pa.

Resins from sugar.


Many attempts have been made to utilize sugar as a raw material
for synthetic resins. United States Patent No. 1,949,831, dated
March 6, 1934, claims a process for the manufacture of molding
compounds by condensing saccharide with aldehydes and urea.
Pure sucrose yields a clear, colorless, nonresilient resin, while
molasses and cane sugar give dark-colored resins. The trade name
Sakaloid is used to designate certain of these resins; there is,
however, no known domestic production. Sucrolite is the trade name
of a brand of resins from sugar produced in Europe.

Sulphonamide resins.
The sulphonamide resins were developed from para
toluenesulphonamide, a byproduct obtained in the manufacture of
saccharin (synthetic sweetening agent).
Para toluenesulphonamide, condensed with formaldehyde or other
aldehyde, forms a viscous mass which, on heating, is converted to a
hard colorless resin. Such resins are compatible with cellulose
acetate or nitrocellulose in lacquers, the combination yielding clear,
colorless lacquers of good gloss and adhesion. Other possible uses
are as an adhesive in safety glass, in certain molding compositions,
in insulating materials, and to deluster artificial silk.
Domestic production of sulphonamide resin is entirely by the
Monsanto Chemical Co., St. Louis, Mo. It is marketed under the
trade name Santolite.
12. ORGANIZATION OF THE
SYNTHETIC RESIN INDUSTRY
The discussion of the various synthetic resins on pages 11 to 52
carries in each case, under the heading of production, a notation of
the number of companies producing that particular resin; and the
discussion on pages 86 to 141 of important raw materials for these
resins describes briefly the conditions under which these materials
are produced. We shall now consider the interrelationships between
industries producing the several resins, and the relation of the resin
industries to their raw materials and to some of the important resin-
consuming industries.
No description of the organization of a rapidly expanding industry
can be expected to remain accurate for long. But regardless of future
changes that may be expected, the general pattern seems definite
enough to make possible a few broad generalizations. At present the
producers of synthetic resins may be classified in two groups: those
making alkyd and tar-acid resins, and those making all other
synthetic resins.
The alkyd resins and the tar-acid resins are produced in large
volume, and for these resins the patent situation is such that there is
nothing to exclude new producers. The result has been that new
firms have entered the field and there has been a marked tendency
for concerns using these resins on a large scale to produce them.
This general situation may be expected to continue as long as the
volume of consumption of these resins is rising. But when
consumption levels off, it would not be surprising if increased
competition for new business resulted in consolidations of some of
the producing units.
Each of the other synthetic resins is produced by a small number
of firms and this may be expected to continue as long as the
production of a particular resin is small, or basic patents dominate
the situation. When and if the situation in these respects changes for
some of the other resins, they will probably develop the same
tendencies as now exist in the production of the tar-acid and alkyd
resins.

Horizontal relationships between resin


producers.
Horizontal relationships between companies are those between
different units in the same industry (say two tar-acid resin
producers), or in different industries each operating at the same
stage of industrial production (say a tar-acid resin producer and a
producer of urea resin). As a rule, extensive horizontal relationships
are not common in relatively young industries, and this is true of the
production of synthetic resins. In general, it has not been necessary
to absorb competitors to achieve a greater volume of sales, and
efforts have been directed to exploiting the possibilities of expansion
in a growing market. This necessitated solving technical problems
concerning improvement of the product and its production on an ever
larger scale; legal problems regarding patents (protection of those
owned, and the policy to be adopted toward unadjudicated patents
owned by others); and the marketing problem of convincing
prospective customers of the worth of a new product. These and
other problems incidental to successful competitive production and
sale of a given type of synthetic resin have been sufficient to restrain
the desire to produce more than one type.
The patent situation of most synthetic resins is extremely
complicated. In the case of tar-acid molding resins the basic
Baekeland patents have expired, but for other synthetic resins either
the basic patent is still in force, or it is difficult to say which is the
basic patent, because of lack of adjudication by the courts. In all
cases dozens of supplementary patents are in force and sometimes
hundreds. As a result the patent situation, though one of the bars
against entering into a new field, frequently forces some relationship
between producing units in the same synthetic resin field. Cast

You might also like