You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
274
mcs/class/referencesource/System.Data.Linq/Mapping/Attributes.cs
Normal file
274
mcs/class/referencesource/System.Data.Linq/Mapping/Attributes.cs
Normal file
@ -0,0 +1,274 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace System.Data.Linq.Mapping {
|
||||
|
||||
/// <summary>
|
||||
/// Attribute placed on a method mapped to a User Defined Function.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
|
||||
public sealed class FunctionAttribute : Attribute {
|
||||
string name;
|
||||
bool isComposable;
|
||||
public FunctionAttribute() {
|
||||
}
|
||||
public string Name {
|
||||
get { return this.name; }
|
||||
set { this.name = value; }
|
||||
}
|
||||
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Composable", Justification="Spelling is correct.")]
|
||||
public bool IsComposable {
|
||||
get { return this.isComposable; }
|
||||
set { this.isComposable = value; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This attribute is applied to functions returning multiple result types,
|
||||
/// to declare the possible result types returned from the function. For
|
||||
/// inheritance types, only the root type of the inheritance hierarchy need
|
||||
/// be specified.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
|
||||
public sealed class ResultTypeAttribute : Attribute {
|
||||
Type type;
|
||||
public ResultTypeAttribute(Type type) {
|
||||
this.type = type;
|
||||
}
|
||||
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "The contexts in which this is available are fairly specific.")]
|
||||
public Type Type {
|
||||
get { return this.type; }
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = false)]
|
||||
public sealed class ParameterAttribute : Attribute {
|
||||
string name;
|
||||
string dbType;
|
||||
public ParameterAttribute() {
|
||||
}
|
||||
public string Name {
|
||||
get { return this.name; }
|
||||
set { this.name = value; }
|
||||
}
|
||||
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db", Justification = "Conforms to legacy spelling.")]
|
||||
public string DbType {
|
||||
get { return this.dbType; }
|
||||
set { this.dbType = value; }
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
||||
public sealed class DatabaseAttribute : Attribute {
|
||||
string name;
|
||||
public DatabaseAttribute() {
|
||||
}
|
||||
public string Name {
|
||||
get { return this.name; }
|
||||
set { this.name = value; }
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
|
||||
public sealed class TableAttribute : Attribute {
|
||||
string name;
|
||||
public TableAttribute() {
|
||||
}
|
||||
public string Name {
|
||||
get { return this.name; }
|
||||
set { this.name = value; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class attribute used to describe an inheritance hierarchy to be mapped.
|
||||
/// For example,
|
||||
///
|
||||
/// [Table(Name = "People")]
|
||||
/// [InheritanceMapping(Code = "P", Type = typeof(Person), IsDefault=true)]
|
||||
/// [InheritanceMapping(Code = "C", Type = typeof(Customer))]
|
||||
/// [InheritanceMapping(Code = "E", Type = typeof(Employee))]
|
||||
/// class Person { ... }
|
||||
///
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple=true, Inherited = false)]
|
||||
public sealed class InheritanceMappingAttribute : Attribute {
|
||||
private object code;
|
||||
private Type type;
|
||||
private bool isDefault;
|
||||
|
||||
/// <summary>
|
||||
/// Discriminator value in store column for this type.
|
||||
/// </summary>
|
||||
public object Code {
|
||||
get { return this.code; }
|
||||
set { this.code = value; }
|
||||
}
|
||||
/// <summary>
|
||||
/// Type to instantiate when Key is matched.
|
||||
/// </summary>
|
||||
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification="The contexts in which this is available are fairly specific.")]
|
||||
public Type Type {
|
||||
get { return this.type; }
|
||||
set { this.type = value; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If discriminator value in store column is unrecognized then instantiate this type.
|
||||
/// </summary>
|
||||
public bool IsDefault {
|
||||
get { return this.isDefault; }
|
||||
set { this.isDefault = value; }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public abstract class DataAttribute : Attribute {
|
||||
string name;
|
||||
string storage;
|
||||
protected DataAttribute() { }
|
||||
public string Name {
|
||||
get { return this.name; }
|
||||
set { name = value; }
|
||||
}
|
||||
public string Storage {
|
||||
get { return this.storage; }
|
||||
set { this.storage = value; }
|
||||
}
|
||||
}
|
||||
|
||||
public enum UpdateCheck {
|
||||
Always,
|
||||
Never,
|
||||
WhenChanged
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used to specify for during insert and update operations when
|
||||
/// a data member should be read back after the operation completes.
|
||||
/// </summary>
|
||||
public enum AutoSync {
|
||||
Default = 0, // Automatically choose
|
||||
Always = 1,
|
||||
Never = 2,
|
||||
OnInsert = 3,
|
||||
OnUpdate = 4
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
|
||||
public sealed class ColumnAttribute : DataAttribute {
|
||||
string dbtype;
|
||||
string expression;
|
||||
bool isPrimaryKey;
|
||||
bool isDBGenerated;
|
||||
bool isVersion;
|
||||
bool isDiscriminator;
|
||||
bool canBeNull = true;
|
||||
UpdateCheck check;
|
||||
AutoSync autoSync = AutoSync.Default;
|
||||
bool canBeNullSet = false;
|
||||
|
||||
public ColumnAttribute() {
|
||||
check = UpdateCheck.Always;
|
||||
}
|
||||
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db", Justification="Conforms to legacy spelling.")]
|
||||
public string DbType {
|
||||
get { return this.dbtype; }
|
||||
set { this.dbtype = value; }
|
||||
}
|
||||
public string Expression {
|
||||
get { return this.expression; }
|
||||
set { this.expression = value; }
|
||||
}
|
||||
public bool IsPrimaryKey {
|
||||
get { return this.isPrimaryKey; }
|
||||
set { this.isPrimaryKey = value; }
|
||||
}
|
||||
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db", Justification = "Conforms to legacy spelling.")]
|
||||
public bool IsDbGenerated {
|
||||
get { return this.isDBGenerated; }
|
||||
set { this.isDBGenerated = value; }
|
||||
}
|
||||
public bool IsVersion {
|
||||
get { return this.isVersion; }
|
||||
set { this.isVersion = value; }
|
||||
}
|
||||
public UpdateCheck UpdateCheck {
|
||||
get { return this.check; }
|
||||
set { this.check = value; }
|
||||
}
|
||||
public AutoSync AutoSync {
|
||||
get { return this.autoSync; }
|
||||
set { this.autoSync = value; }
|
||||
}
|
||||
public bool IsDiscriminator {
|
||||
get { return this.isDiscriminator; }
|
||||
set { isDiscriminator = value; }
|
||||
}
|
||||
public bool CanBeNull {
|
||||
get {return this.canBeNull;}
|
||||
set {
|
||||
this.canBeNullSet = true;
|
||||
this.canBeNull = value;
|
||||
}
|
||||
}
|
||||
internal bool CanBeNullSet {
|
||||
get {return this.canBeNullSet;}
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
|
||||
public sealed class AssociationAttribute : DataAttribute {
|
||||
string thisKey;
|
||||
string otherKey;
|
||||
bool isUnique;
|
||||
bool isForeignKey;
|
||||
bool deleteOnNull;
|
||||
string deleteRule;
|
||||
|
||||
public AssociationAttribute() { }
|
||||
public string ThisKey {
|
||||
get { return this.thisKey; }
|
||||
set { this.thisKey = value; }
|
||||
}
|
||||
public string OtherKey {
|
||||
get { return this.otherKey; }
|
||||
set { this.otherKey = value; }
|
||||
}
|
||||
public bool IsUnique {
|
||||
get { return this.isUnique; }
|
||||
set { this.isUnique = value; }
|
||||
}
|
||||
public bool IsForeignKey {
|
||||
get { return this.isForeignKey; }
|
||||
set { this.isForeignKey = value; }
|
||||
}
|
||||
public string DeleteRule {
|
||||
get { return this.deleteRule; }
|
||||
set { this.deleteRule = value; }
|
||||
}
|
||||
public bool DeleteOnNull {
|
||||
get { return this.deleteOnNull; }
|
||||
set { this.deleteOnNull = value; }
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
||||
public sealed class ProviderAttribute : Attribute {
|
||||
Type providerType;
|
||||
|
||||
public ProviderAttribute() {
|
||||
}
|
||||
|
||||
public ProviderAttribute(Type type) {
|
||||
this.providerType = type;
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "The contexts in which this is available are fairly specific.")]
|
||||
public Type Type {
|
||||
get { return this.providerType; }
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user