Aracılığıyla paylaş


Öznitelik Tabanlı Eşleme

LINQ to SQL, öznitelikleri uygulayarak veya bir dış eşleme dosyası kullanarak SQL Server veritabanını LINQ ile SQL nesne modeline eşler. Bu konu başlığı altında öznitelik tabanlı yaklaşım özetlenmiştir.

LinQ to SQL, en temel biçiminde bir veritabanını ile DataContext, tabloyu bir sınıfla, sütunları ve ilişkileri de bu sınıflardaki özelliklerle eşler. Nesne modelinizdeki bir devralma hiyerarşisini eşlemek için öznitelikleri de kullanabilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Visual Basic veya C# dilinde Nesne Modeli Oluşturma.

Visual Studio kullanan geliştiriciler genellikle Nesne İlişkisel Tasarımcısı kullanarak öznitelik tabanlı eşleme gerçekleştirir. SQLMetal komut satırı aracını da kullanabilir veya öznitelikleri kendiniz el ile kodlayabilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Visual Basic veya C# dilinde Nesne Modeli Oluşturma.

Not

Dış XML dosyası kullanarak da eşleyebilirsiniz. Daha fazla bilgi için bkz . Dış Eşleme.

Aşağıdaki bölümlerde öznitelik tabanlı eşleme daha ayrıntılı olarak açıklanmaktadır. Daha fazla bilgi için ad alanına System.Data.Linq.Mapping bakın.

DatabaseAttribute Özniteliği

Bağlantı tarafından bir ad sağlanmadığında veritabanının varsayılan adını belirtmek için bu özniteliği kullanın. Bu öznitelik isteğe bağlıdır, ancak bunu kullanırsanız, aşağıdaki tabloda açıklandığı gibi özelliğini uygulamanız Name gerekir.

Özellik Tür Varsayılan Açıklama
Name String Bkz. Name özelliğiyle birlikte Name kullanılır, veritabanının adını belirtir.

Daha fazla bilgi için bkz. DatabaseAttribute.

TableAttribute Özniteliği

Bir sınıfı, veritabanı tablosu veya görünümüyle ilişkili bir varlık sınıfı olarak atamak için bu özniteliği kullanın. LINQ to SQL, bu özniteliği olan sınıfları kalıcı sınıflar olarak ele alır. Aşağıdaki tabloda özelliği açıklanmaktadır Name .

Özellik Tür Varsayılan Açıklama
Name String Sınıf adıyla aynı dize Bir sınıfı, veritabanı tablosuyla ilişkilendirilmiş bir varlık sınıfı olarak belirler.

Daha fazla bilgi için bkz. TableAttribute.

ColumnAttribute Özniteliği

Veritabanı tablosundaki bir sütunu temsil etmek üzere varlık sınıfının bir üyesini atamak için bu özniteliği kullanın. Bu özniteliği herhangi bir alana veya özelliğe uygulayabilirsiniz.

LINQ to SQL değişiklikleri veritabanına kaydettiğinde yalnızca sütun olarak tanımladığınız üyeler alınır ve kalıcı hale getirilir. Bu özniteliği olmayan üyelerin kalıcı olmadığı varsayılır ve eklemeler veya güncelleştirmeler için gönderilmez.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
AutoSync Autosync Asla Ortak dil çalışma zamanına (CLR) ekleme veya güncelleştirme işleminden sonra değeri almasını ister.

Seçenekler: Always, Never, OnUpdate, OnInsert.
CanBeNull Boolean true Bir sütunun null değerler içerebileceğini gösterir.
DbType String Çıkarsanan veritabanı sütun türü Veritabanı sütununun türünü belirtmek için veritabanı türlerini ve değiştiricileri kullanır.
Expression String Boş Veritabanında hesaplanan bir sütun tanımlar.
IsDbGenerated Boolean false Bir sütunun veritabanının otomatik olarak oluşturduğu değerleri içerdiğini gösterir.
IsDiscriminator Boolean false Sütunun LINQ to SQL devralma hiyerarşisi için ayrıştırıcı değeri içerdiğini gösterir.
IsPrimaryKey Boolean false Bu sınıf üyesinin tablonun birincil anahtarları olan veya bir parçası olan bir sütunu temsil ettiğini belirtir.
IsVersion Boolean false Üyenin sütun türünü veritabanı zaman damgası veya sürüm numarası olarak tanımlar.
UpdateCheck UpdateCheck Always, bir üye için değilse IsVersiontrue LINQ to SQL'in iyimser eşzamanlılık çakışmalarının algılanması yaklaşımını belirtir.

Daha fazla bilgi için bkz. ColumnAttribute.

Not

AssociationAttribute ve ColumnAttribute Depolama özellik değerleri büyük/küçük harfe duyarlıdır. Örneğin, AssociationAttribute özniteliğinde kullanılan değerlerin olduğundan emin olun. Depolama özelliği, kodun başka bir yerinde kullanılan ilgili özellik adları için büyük/küçük harfle eşleşmektedir. Bu, Visual Basic de dahil olmak üzere genellikle büyük/küçük harfe duyarlı olmayan tüm .NET programlama dilleri için geçerlidir. Depolama özelliği hakkında daha fazla bilgi için bkzDataAttribute.Storage. .

AssociationAttribute Özniteliği

Veritabanındaki bir ilişkiyi temsil edecek bir özellik (örneğin, yabancı anahtardan birincil anahtara ilişki) göstermek için bu özniteliği kullanın. İlişkiler hakkında daha fazla bilgi için bkz . Nasıl yapılır: Veritabanı İlişkilerini Eşleme.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
DeleteOnNull Boolean false Yabancı anahtar üyelerinin tümü null atanamayan bir ilişkilendirmeye yerleştirildiğinde, ilişkilendirme null olarak ayarlandığında nesneyi siler.
DeleteRule String Hiçbiri İlişkilendirmeye silme davranışı ekler.
IsForeignKey Boolean false True ise, üyeyi bir veritabanı ilişkisini temsil eden bir ilişkilendirmede yabancı anahtar olarak gösterir.
IsUnique Boolean false True ise, yabancı anahtarda benzersizlik kısıtlamasını gösterir.
OtherKey String İlgili sınıfın kimliği Hedef varlık sınıfının bir veya daha fazla üyesini ilişkilendirmenin diğer tarafında anahtar değerleri olarak belirler.
ThisKey String İçeren sınıfın kimliği İlişkilendirmenin bu tarafındaki anahtar değerleri temsil etmek için bu varlık sınıfının üyelerini belirler.

Daha fazla bilgi için bkz. AssociationAttribute.

Not

AssociationAttribute ve ColumnAttribute Depolama özellik değerleri büyük/küçük harfe duyarlıdır. Örneğin, AssociationAttribute özniteliğinde kullanılan değerlerin olduğundan emin olun. Depolama özelliği, kodun başka bir yerinde kullanılan ilgili özellik adları için büyük/küçük harfle eşleşmektedir. Bu, Visual Basic de dahil olmak üzere genellikle büyük/küçük harfe duyarlı olmayan tüm .NET programlama dilleri için geçerlidir. Depolama özelliği hakkında daha fazla bilgi için bkzDataAttribute.Storage. .

InheritanceMappingAttribute Özniteliği

Devralma hiyerarşisini eşlemek için bu özniteliği kullanın.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
Code String Yok. Değer sağlanmalıdır. Ayırıcının kod değerini belirtir.
IsDefault Boolean false True ise, depodaki ayırıcı değer belirtilen değerlerden biriyle eşleşmediğinde bu türdeki bir nesnenin örneğini oluşturur.
Type Tür Yok. Değer sağlanmalıdır. Hiyerarşideki sınıfın türünü belirtir.

Daha fazla bilgi için bkz. InheritanceMappingAttribute.

FunctionAttribute Özniteliği

Bir yöntemi veritabanındaki saklı yordamı veya kullanıcı tanımlı işlevi temsil eden olarak ayarlamak için bu özniteliği kullanın.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
IsComposable Boolean false False ise, saklı yordama eşlemeyi gösterir. True ise, kullanıcı tanımlı bir işleve eşlemeyi gösterir.
Name String Veritabanındaki adla aynı dize Saklı yordamın veya kullanıcı tanımlı işlevin adını belirtir.

Daha fazla bilgi için bkz. FunctionAttribute.

ParameterAttribute Özniteliği

Saklı yordam yöntemlerinde giriş parametrelerini eşlemek için bu özniteliği kullanın.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
DbType String Hiçbiri Veritabanı türünü belirtir.
Name String Veritabanındaki parametre adıyla aynı dize parametresi için bir ad belirtir.

Daha fazla bilgi için bkz. ParameterAttribute.

ResultTypeAttribute Özniteliği

Bir sonuç türü belirtmek için bu özniteliği kullanın.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
Type Tür (Yok) döndüren IMultipleResultssaklı yordamlara eşlenen yöntemlerde kullanılır. Saklı yordam için geçerli veya beklenen tür eşlemelerini bildirir.

Daha fazla bilgi için bkz. ResultTypeAttribute.

DataAttribute Özniteliği

Adları ve özel depolama alanlarını belirtmek için bu özniteliği kullanın.

Aşağıdaki tabloda bu özniteliğin özellikleri açıklanmaktadır.

Özellik Tür Varsayılan Açıklama
Name String Veritabanındaki adla aynı Tablonun, sütunun ve benzerinin adını belirtir.
Storage String Genel erişimciler Temel alınan depolama alanının adını belirtir.

Daha fazla bilgi için bkz. DataAttribute.

Ayrıca bkz.