Ö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.