मैं एंटीटी फ्रेमवर्क 5 - कोड पहले का उपयोग कर रहा हूं।इकाई फ्रेमवर्क कोड में विभिन्न डेटाटाइप के कॉलम और इकाई प्रोपरी को मैप करने के लिए कैसे करें
मेरे पास एक डेटाबेस है जिसे मैं कनेक्ट कर रहा हूं जो कुछ समय से पहले से मौजूद है (मैंने इसे नहीं बनाया है)। T_Customers
नामक एक टेबल है। इसमें सभी ग्राहकों की एक सूची है। यह निम्न संरचना (केवल आंशिक रूप से दिखाया गया है) है:
Customer_id | numeric (5, 0) | auto increment | not null (not set as primary key)
FName | varchar(50) | not null
LName | varchar(50) | not null
मेरे Customer
वर्ग:
public class Customer : IEntity
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
मेरे IEntity
इंटरफ़ेस:
public interface IEntity
{
int Id { get; set; }
}
मैं अपने डेटाबेस संदर्भ कक्षा में निम्नलिखित है:
public class DatabaseContext : DbContext
{
public DatabaseContext(string connectionString)
: base(connectionString)
{
}
public DbSet<Customer> Customers { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new CustomerConfiguration());
}
public new DbSet<TEntity> Set<TEntity>()
where TEntity : class, IEntity
{
return base.Set<TEntity>();
}
}
मेरे ग्राहक विन्यास वर्ग:
class CustomerConfiguration : EntityTypeConfiguration<Customer>
{
internal CustomerConfiguration()
{
this.ToTable("T_Customers");
this.Property(x => x.Id).HasColumnName("Customer_id");
this.Property(x => x.FirstName).HasColumnName("FName");
this.Property(x => x.LastName).HasColumnName("LName");
}
}
मैं अपने इकाई घोषणाओं में एक समान होना चाहिए कोशिश कर रहा हूँ, मैं सभी आईडी की जरूरत है पूर्णांकों किया जाना है। यह ग्राहक आईडी डेटाबेस में संख्यात्मक है, और अब मैं सभी ग्राहकों की सूची लौटने की कोशिश करते समय मुद्दों में भाग रहा हूं। मैं डेटाबेस संख्यात्मक प्रकार से सी # पूर्णांक प्रकार से कैसे मानचित्र करूं? मैं अपनी कक्षा की आईडी को शून्य या दशमलव में नहीं बदल रहा हूं, मेरी आईडी हमेशा गैर शून्य और पूर्णांक होती है। मैं डेटाबेस भी नहीं बदल सकता।
त्रुटि है कि मैं हो रही है:
int myInt = Convert.Int32(numberFromDatabase);
धन्यवाद। अगर मुझे एक अलग परिशुद्धता की आवश्यकता है तो 18, 0? क्या यह 5,0 की सटीकता से चिपकना बेहतर है? –
@ ब्रेंडनवोग अच्छी तरह से, आपने कहा है कि आपके पास पहले से ही मौजूदा डेटाबेस है, इसलिए आपकी सटीकता '5,0' रहेगी। यदि आप कोड से नया डेटाबेस जेनरेट करेंगे, तो इस कॉलम में सटीकता '18,0' होगी। इसलिए, यदि आपके पास पहले से ही सटीकता '5,0' है तो आपको कुछ भी बदलने की आवश्यकता नहीं है। बीटीडब्ल्यू इंटीजर का मूल्य 99 99 9 से बड़ा हो सकता है, इसलिए यह दिमाग में है। –
धन्यवाद! इससे आज मेरा काम बन गया। – tuseau